Commit Graph

21 Commits

Author SHA1 Message Date
Gabriel Ferreira
8ac52d83cf build: versioning and find_external_library fixes
Includes:
- Producing version.cache file if --enable-build-version/NS3_ENABLE_BUILD_VERSION=ON
- Consume version.cache file if the git commit history is not available
- Crash the configuration if neither the git commit history or version.cache file are
available when NS3_ENABLE_BUILD_VERSION=ON
- Warn user to reconfigure the project with NS3_ENABLE_BUILD_VERSION=ON to check
the version
- Only try to remove duplicates if there is a list in find_external_library
2022-02-05 23:46:06 +00:00
Gabriel Ferreira
39b8f9bc80 build: generalize find_external_library and other fixes
Includes:
- find_external_library can now be used to find multiple headers and libraries for the same dependency 
- cmake-format changes 
- fix for dependency checking for ns-3-dev/examples
- enable compile_commands.json generation by default
2022-01-31 13:55:48 +00:00
Gabriel Ferreira
bbe67f5fc2 build: check if visualizer is in the enabled modules list 2022-01-28 15:37:27 -03:00
Gabriel Ferreira
41aacec626 build: CMake refactoring
Includes:
- refactor build_lib and build_lib_example macros
    - unify src and contrib macros
    - replace macro with function not to leak definitions
    - parse list of arguments
- different cmake-format file for modules to list one item per line
2022-01-28 10:20:18 -03:00
Gabriel Ferreira
113c3744fc build: CMake and ns3 fixes and improvements
Includes:
- fix python warnings and wrap pkgconfig_interface_include_directories in quotes to treat it as a string
- prevent failure when Python is not found
- refactor python bindings checks and error messages
- export 3rd-party include directories and linked libraries
    - Adding a NS3_REEXPORT_THIRD_PARTY_LIBRARIES option to always export include directories and libraries used by a module, making it automatically available to 3rd-party modules
    - Making NS3_REEXPORT_THIRD_PARTY_LIBRARIES option enabled by default
- replace colliding shortcuts with list of non-ambiguous shortcuts
- remove unnecessary code blocks from click
- warn users that doxygen target requires examples and tests
    - These are used to generate introspected documentation and guarantee proper dependency checking and build order
2022-01-27 17:28:38 -03:00
Gabriel Ferreira
9342082c53 bindings, build: fix bindings and visualizer build
Includes:
- scan python scripts
- run python scripts from ns3
- replace visualizer file copy with configure_file to prevent cmake refreshes
- replace ns__init__.py file copy with configure_file to prevent cmake refreshes
- fix bindings scanning with cmake
- pass include directories to modulegen for castxml consumption
- add missing parameters of Recv in python-unit-tests.py
- change apiscan targets from apiscan-module to libmodule-apiscan
- change bindings targets from module-bingings to libmodule-bindings
- scanning and bindings build tests
- scan scratch python scripts
- replace FindPython3 with FindPython to be compatible with CMake 3.10
- do not export private visual-simulator-impl.h
- do not export udp-socket-impl.h
- use .so suffix for bindings on Mac instead of .dylib
2022-01-26 01:53:28 -03:00
Gabriel Ferreira
bbe2128abe build: more ns3 and CMake fixes
Includes:
- inform ns3 user cmake was not found, or an unsupported version was found
- replace open-mpi environment variables with command-line arguments
- mark more variables as advanced
- add -v and --verbose option to run and only output the programs output by default
- fix scratch subdir prefixes and add tests
- prevent cmake crash when scratch sources do not have a main function
- disable MPI module by default
- wrap cmakelists_content in quotes to prevent failure of filter_libraries
- install pkgconfig files and add tests
- pkg-config generation (still missing installation)
- forward PYTHONPATH to modulegen
- fix dependency search for brite, click and openflow
2022-01-23 17:30:08 -03:00
Gabriel Ferreira
70d11fe983 build: ns3 and CMake fixes
- fix scratch shortcut transformation to build target and binary
- scan scratch files for a main function to use them as the target name
- fix CMake generator parsing
- update the -- separator message
- use -- separator to forward CMake flags from ns3
- add --vis option to ns3
- embedded version fixes
    Fix NS3_VERSION_PATCH and NS3_VERSION_RELEASE_CANDIDATE default values.
    Add check-version target to CMake.
    Add --enable-build-version to ns3.
    Add --check-profile and --check-version options to ns3.
- process each scratch subdirectory as a single target
- forward ns3 arguments after -- separator to the program to run
- fix escape sequence in command-template help string
- handle modules with very long names
2022-01-19 16:25:03 -03:00
Tom Henderson
4ee323f8fd build: (merges !837) Remove libgcrypt detection 2022-01-13 17:41:39 -08:00
Gabriel Ferreira
ff3b511384 build: Bugfixes and refactoring of ns3 and CMake
Including:
- add missing command for introspected doxygen
- run get_version.sh before running doxygen
- use find_package(Doxygen) to get the doxygen executable
- silence python and sqlite find_package warnings
- return cmake returncode if configuration fails
- require GTK3 3.22
- link all libraries to print-introspected-doxygen
- replace shell with use_shell for variable name
- revert wrong changes to propagation of return codes and add test
- disable pch when ccache is found
- make --enable-sudo a post-build step and a runtime option
- add docs subparser
- add enable-sudo option
- refactor positional argument values
- fix --check option and add shell option
- replace --no-task-lines with --quiet
- replace --nowaf with --no-build
- replace --run --run-no-build with run (--no-build)
- replace ns3 documentation related arguments with targets
- document test-ns3.py
- export include directories used by ns3 libraries
- refactor CMake documentation dependency checking and behavior
- add --allow-run-as-root for running MPI examples on the CI
2022-01-09 02:48:53 -03:00
Tom Henderson
12dee93f70 fd-net-device: (merges !811) Remove PlanetLab helper 2022-01-02 11:46:59 -08:00
Gabriel Ferreira
715232ea96 build: fix dependency checks for the test module
And formatting fixes
2021-12-19 11:43:47 -03:00
Gabriel Ferreira
9d9f765ba6 build: additional CMake and ns3 bugfixes 2021-12-16 02:29:59 +00:00
Eduardo Almeida
bb46bcce1a build: Remove remaining NSC references from waf_workaround_fakeconfig.cmake 2021-12-15 15:10:55 +00:00
Gabriel Ferreira
f61eb31909 build: Exempt paths to external libraries from the ns3 modules check 2021-12-10 21:21:42 -03:00
Tom Henderson
2c19b5b453 internet: Remove Network Simulation Cradle (NSC) 2021-12-10 09:07:03 -08:00
Gabriel Ferreira
f6ef415392 build: CMake bugfixes
Fixes include:
- Handling of relative paths used as output directories
- Accepting comma separated lists of modules to enable/disable
- Echoing all CMake commands at the end of the execution of ns3 script
- More informative optional features summary output
- Replace absolute paths with relative paths in the printed CMake output for less verbose output
- Set debug build type on the CMake side to ensure ccmake doesn't crash
- Prefix INT64X64 with NS3 to indicate user switch
- Compiler version check
- Removal of verbose option
- Suppress empty enabled/disabled module tables

Features include:
- Test for installation/uninstallation of ns-3 as a CMake package
- Test importing ns-3 as a CMake package and use in a 3rd-party project
- Test to check VERSION usage
- ns3 option to enable/disable sanitizers
- Associate headers to libraries targets
2021-12-10 02:13:43 +00:00
Ryan Mast
0e32b5304b build: Add ns3:: namespace to exported CMake targets 2021-12-09 19:18:00 +00:00
Gabriel Ferreira
7d9939dd00 build: Fix _cache entry for ns-3 version. 2021-12-05 19:40:53 -03:00
Gabriel Ferreira
a893eba7e3 build: Fix CMake and ns3 script bugs, add a test suite and fix formatting 2021-12-05 21:53:49 +00:00
Gabriel Ferreira
9c876c7f5a CMake buildsystem 2021-12-01 12:29:55 -08:00