AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |
Back to Blog
Doxygen copyright tag5/1/2023 ![]() Windows also requires some extra steps in the build process, mainly due to the fact that while *nixes have a “standard” location for headers and libs (/usr/local/include and /usr/local/lib), in Windows you should specify with –prefix (Boost) or -DCMAKE_INSTALL_PREFIX (CMake) where your libraries’ public interface (headers, libs, dlls, cmake config files) should be installed and where they can be found by other components. I began this post with the question about multi platform development, where my problem originally was how to make all this work in Windows while Ubuntu and macOS was no problem.įor Windows, using CMake required some changes to the CMakeLists.txt project files using CMake macros with add_definitions() due to using random generator engines for Boost uuid class that work differently on Windows than on the other platforms: if (WIN32)Īdd_definitions(-DBOOST_UUID_RANDOM_PROVIDER_FORCE_WINCRYPT) # And then generate documentation using Doxygen I can also easily switch from using make to using Ninja as the build engine.Ĭonfigure_file( $ĬOMMENT "Generating API documentation with Doxygen" VERBATIM Also creating projects for Eclipse CDT, Xcode and Visual Studio is quite easy. I eventually found the way to create CMake files so that the project I am working on, can be build from the CMake files in Windows 10, Ubuntu and macOS. On reset the current tag value is 00040 // increased, so that the ValVector must only be zeroed. It liberates me from the lower level technical stuff of considering how to create makefiles for different OS’s and compilers, allowing me to focus on the actual problem to solve with those tools - creating some code and working systems. These 00009 // include a list of copyright holders. Like, if you are doing development for multiple platforms, with multiple compilers and IDEs, then for solving that problem, CMake is a good choice instead of makefiles. I prefer to use the tools that fit the problem. We all use tools, whether it is vim, command line git and makefiles, or CMake, Xcode IDE and Fork for git. That is why I prefer using git on command line - though I do have several git GUI tools installed.Īnother thought that came into my mind is that software development without tools just doesn’t happen. ![]() Then you can apply and use those wherever you are developing. It is better to learn the lower level tools well, those tools which are shared across platforms and ecosystems. Moving to a different ecosystem or platform, requiring different tools will become more difficult and time consuming. Only knowing how to work with some specific tools not available on many platforms limits the applicability of your skills. For example, tying yourself in some specific IDE is not very useful. One said that he has done something multiplatform with CMake, but doesn’t remember how and added: * \Exception in PHP if situation a) or situation b).A while ago I was asking in Slack if anyone knew how to write CMake files for C projects that work across many platforms, including macOS, Ubuntu and Windows. * NULL on failure, some string otherwise. * arg4 bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla * arg3 bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla * arg2 bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla * arg1 bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla * This is a file comment at the start of a file. Parameter documentation must not be aligned (maintenance hell). This RFC proposes to use the JavaDoc style for two reasons: However, only two are usable for us due to our requirement to be compatible with the C89 standard. There is (sadly) no awesome doc-testing feature available like Rust has it, but examples are still beneficial and spare people to search the Internet, or read one of the totally outdated books/online resources.ĭoxygen supports multiple formats. The target audience of our documentation should be fellow developers who want to get started with PHP internals development, hence, examples are usually what is most important. Rather to start documenting in the future, as well as while refactoring or rewriting existing code. This RFC does not propose any big documentation fest where development is halted and everybody starts writing documentation. An attempt to document PHP internals was already started a few years back by Jefferson Gonzalez ( see phoxygen at GitHub), but abandoned due to a lack of spare time. Most developers are aware of this anyways, since they use technical documentation on their own every day. This RFC will not go into detail why proper API documentation is beneficial, science has the answer. The proposal is actually very simple: to start documenting the C sources of PHP with Doxygen comments.
0 Comments
Read More
Leave a Reply. |