![]() ![]() doxygen-no-build, -docset: probably require two targets per command, one depending on the libraries/executables and other not depending on them -enable-sudo: not implemented. run, -run-no-build, -visualize, -gdb, -valgrind: ns3waf.py -run|-run-no-build|-visualize|-gdb|-valgrind -command-template, -pyrun and -pyrun-no-build: in the works for ns3waf. enable-gcov and -lcov-report : NS3_COVERAGE=ON|OFF -lcov-zerocounters: NS3_COVERAGE_ZERO_COUNTERS=ON|OFF -no-task-lines: depend on the buildsystem, not sure CMake can silence this. I can rewrite the docs properly depending on the demand/feedback.ĮDIT: Adding a list of supported switches and their mapping to CMake. It will automatically generate the cache and load the targets to build/run/debug. Just open the ns-3-dev folder, right click the CMakeLists file and click to load the CMake project. From IDEs that support CMake projects (e.g. Targets to build/run/debug should be available for libraries/tests/examples/docs if enabled. ![]() Then open the IDE and load the Makefile in the cmake cache folder. Same instructions for command line, but choosing "Unix Makefiles" or "MinGW Makefiles" as the CMake generator (-G). ns3 configure -G Ninja, the CMake project will be configured to use the specified generator (in this case Ninja)įrom IDEs that do not support CMake projects (e.g. ns3 -gdb|-valgrind -run example, it will execute all the previous steps but execute the program through gdb|valgrind ns3 -run example, it will refresh the CMake cache, then build and then run the example If you specify a target to be built (either a module or an executable), it will get built along with its dependencies (e.g./ns3waf build wifi) ns3 build, the entire project will be built. ns3 configure, the CMake project will be configured with the default settings Not that different from waf, except for the fact the header copy isn't triggered every time you try to rebuild things.įrom the command line (via waf-like wrapper).All flag options like NS3_TESTS|NS3_EXAMPLES are located in the CMakeLists.txt file in ns-3-dev.cmake -DCMAKE_BUILD_TYPE=debug -G"Ninja" -DNS3_TESTS=ON -DNS3_EXAMPLES=ON. Call cmake to generate the build system files and copy headers to ns-3-dev/build/ns3.Libtorch support (nobody asked for these two, so I'm not including them).Vcpkg library/dependencies installation.What is working but currently not included? Examples-as-tests-suites are broken due to waf dependency.Contribution scripts (still not exactly the same, but closer to the waf version).Python bindings (it is kind of working, but failing for a fd-net-device).It should also work fine for MinGW/Msys2 with the patches from !437 (merged). The current version should be able to build most of the ns-3 project without issues and run. The changes to upstream code are mostly in test.py to accept executables without ns3ver- and -buildProfileSuffix (which I could reproduce, but choose not to do so for now), a missing header in, a gitignore file and the CI file. ![]() Tried to make it as a drop-in replacement for waf, with very few changes to upstream code. It has been working for the last few years, but it was not in a presentable state. Those are great for developing, but especially for profiling and debugging. I'm not sure on the demand for this, but using CMake enables basically all IDEs through Xcode/Visual Studio/Makefiles/Ninja projects (CLion, Code::Blocks, Visual Studio, Xcode, Eclipse, etc). ![]()
0 Comments
Leave a Reply. |