Commit Graph

58 Commits

Author SHA1 Message Date
Gabriel Ferreira
4185406a42 build: (fixes #799) export ns-3 build profile names in version.cache 2022-10-31 10:18:58 -03:00
Gabriel Ferreira
973463da5e build: fix mpiexec check in the ns3 script 2022-10-23 20:48:11 -03:00
Gabriel Ferreira
f382439edb build: (fixes #779) prevent ./ns3 clean from deleting the ns-3 directory
This could happen if either the output directory or the cmake cache path were set to the ns-3 root path.
2022-10-19 16:48:54 -03:00
Gabriel Ferreira
89dbb78ba4 build: expose the coverage_gcc target in the ns3 script 2022-10-17 23:04:49 -03:00
Gabriel Ferreira
642ffe8361 build, doc: add options to run with Heaptrack, Memray or Perf profilers 2022-10-17 23:04:49 -03:00
Gabriel Ferreira
6e8642d294 build: check if a dependency exists before calling it in ns3 2022-10-17 23:04:49 -03:00
Gabriel Ferreira
c34abb4ccc build: initial Windows support patches 2022-09-24 15:16:52 -03:00
Gabriel Ferreira
ab7334a287 build: use only header stubs and expose additional options in the ns3 script
Includes:
- Expose --enable/disable-clang-tidy in the ns3 script;
- Expose --enable/disable-precompiled-headers in the ns3 script;
- Disable PCH on Windows.
2022-09-21 21:45:35 -03:00
Gabriel Ferreira
81155c18c7 build, docs: Add option to limit build and testing to specified modules 2022-09-19 21:55:26 +00:00
Tommaso Pecorella
57347ec7e6 doc: ci: check for trailing white space in generated introspected-x.h 2022-08-30 20:30:42 +00:00
Alexander Krotov
f151a6e449 build: remove binding scanning related variables from the ns3 script
They are unused since switch to cppyy
2022-08-16 20:03:59 -03:00
Gabriel Ferreira
0b2c62bf93 build: fix typos and formatting 2022-08-07 21:18:59 +00:00
Gabriel Ferreira
d731bda35d build: show valgrind leaks when running with ns3 2022-08-04 02:08:05 -03:00
Gabriel Ferreira
5306b926dc build: add 'ns3 show (all)' options 2022-07-21 22:32:14 -03:00
Gabriel Ferreira
2247130fb1 build: accept 'ns3 -h' in addition to 'ns3 --help'
Fix #699
2022-07-08 19:30:58 +00:00
Gabriel Ferreira
9ff4236d5a build: fix ns3 argument splitting on -- separator 2022-07-08 14:40:26 +00:00
Gabriel Ferreira
e435de3692 build: complement "ns3 build --help" and "ns3 run --help"
Includes:
- replace "ns3 --list" with "ns3 show targets"
- rename 'ns3 build' and 'ns3 run' target names
2022-07-08 14:40:26 +00:00
Gabriel Ferreira
0424c9a09c build: add to ns3 a --list option to print targets to build and run 2022-06-18 18:10:50 -03:00
Gabriel Ferreira
557e37f668 build: Let ns3 change the configured build profile and C++ standard 2022-05-21 04:17:34 +00:00
Gabriel Ferreira
983725f449 build: Rephrase check-version message when build version is disabled 2022-04-23 20:14:38 -03:00
Gabriel Ferreira
74503981cc build: add pybindgen path in the upper directory to PYTHONPATH 2022-04-23 13:21:14 -03:00
Gabriel Ferreira
07d0ba6abe build: Expose MONOLIB option in ns3 2022-04-20 20:27:34 -03:00
Gabriel Ferreira
4df6af79d4 bindings, CI: run python scripts with ns3 and add bindings scanning job 2022-04-18 11:38:12 -03:00
Gabriel Ferreira
c7553687d7 build: enable colorized CMake and g++/clang++ when using ns3 2022-04-02 21:11:16 -03:00
Gabriel Ferreira
b8539b09dd build: additional CMake and ns3 fixes
Includes:
- exempt copy_headers_before_building_lib from cmake-formatting
- fallback method for castxml search
- forward environment variables to cmake during configuration
2022-04-02 19:28:10 -03:00
Gabriel Ferreira
72e6105195 build: CMake and ns3 fixes
Includes:
- print error message instead of forwarding posix signals in ns3
- supress printing of "Finished executing commands..." for ./ns3 run
- fix ns3 typos and formatting issues
- add verbose options and make doxygen/doxygen-no-build verbose
- re-enable printing of build messages in ./ns3 run
- refactor ns3 dry_run, quiet, jobs and verbose arguments
- check if examples subdirectories have a CMakeLists.txt
2022-04-01 23:44:49 -03:00
Gabriel Ferreira
d3f9e0742f build, doc: add "--trace-performance" argument to ns3 configure 2022-04-01 14:50:21 -03:00
Gabriel Ferreira
6a6b785c5f build,test: fixing CMake and ns3 issues and adding a test case
Includes:
- refactoring lib prefix removal and library dependency checking (fixes #598)
- add new test case for test-ns3.py to test library names
- fix ns3 issue, not accepting to build contrib libraries
- ignore gitlab-ci-local directory in test-ns3.py
2022-03-17 13:55:54 -03:00
Gabriel Ferreira
dcd0ed947c build: fix --enable-sudo behavior when set during configuration 2022-03-13 22:34:13 -03:00
Gabriel Ferreira
fbebb61a6f build: refactoring CMake and ns3
Includes:
- summarize ns3 commands on top-level --help
- add --quiet as a post-positional argument
- refactor verbose variable names
- aggregate ./ns3 --check-config|profile|version into ./ns3 show config|profile|version
- remove ns3 --check deprecated option
- set VERBOSE environment variable when building/running with -v/--verbose
  https://gitlab.com/nsnam/ns-3-dev/-/issues/590#note_870520212
- enable verbose Makefiles when NS3_VERBOSE is enabled
  https://gitlab.com/nsnam/ns-3-dev/-/issues/590
- introduce default build profile and refactor others
  https://gitlab.com/nsnam/ns-3-dev/-/issues/591
- use "-Og" in "CMAKE_BUILD_TYPE=Debug"/"ns3 -d debug"
- add back FindPython3 and fallback to FindPythonInterp if needed
- redirect pybindgen apiscan output to apiscan.log
- enable CMAKE_FIND_DEBUG_MODE with NS3_VERBOSE and CMake >= 3.17
- add search path logging to find_external_library
  Requires NS3_VERBOSE=ON. This is an anternative to CMAKE_FIND_DEBUG_MODE=true available in CMake >= 3.17
- remove C support
- reduce Int128 checks
- fuse Boost Units Quantity and SI header checks
- replace not found messages with skipping
2022-03-13 21:23:47 +00:00
Gabriel Ferreira
fbc729459c build: GSL and ns3/CMake fixes
Includes:
- add GSL include directories and libraries for wifi
- expose enable/disable GSL option in ns3
- refactor ns3 options list
- cmake formatting
2022-03-01 12:36:28 -03:00
Gabriel Ferreira
4aedba2f00 build: CMake refactoring and fixes
Includes:
- fix int64x64 parsing order, remove cached entries in macros-and-definitions and in the docs
- update launch.json scratch names
- add a ctest entry per executable
- forward POSIX signal in ns3 (to get segmentation fault)
- prioritize Ninja generator instead of Makefiles
- add tests for unused utils source files
- remove dummy file and add tests to check for unused source files
- add missing examples and clean up unnecessary definitions
- missing feature entry for LTE used by pybindgen
- refactor CMake related filenames
- fix python libraries and include directories bindings
- fix brite example name
- Keep C++ compiler and flags when refreshing
- Disable precompiled headers when Ccache is found
- Mark find_external_library headers as advanced
- consolidate auxiliary files: build-status.py, _cache.py and .lock-waf_sys.platform_build files are merged into .lock-ns3_sys.platform_build
- scan .cc sources used in bindings and update docs
2022-02-21 22:18:42 -03:00
Gabriel Ferreira
e32c177e45 build: remove waf files, tests and references 2022-02-21 22:08:45 -03:00
Gabriel Ferreira
de0c2c59b6 build: valgrind and clangBuildAnalyzer fixes
Includes:
- expose timeTraceReport to ns3
- update ClangBuildAnalyzer
- add --leak-check=full to `ns3 run --valgrind`
2022-02-18 17:06:26 +00:00
Gabriel Ferreira
bf78fabecf build: replace capture_output with subprocess.PIPE to support Python3.5 2022-02-12 16:28:37 -03:00
Gabriel Ferreira
9fcdbd08d2 build: fix ns3 sphinx targets and test-ns3.py tests 2022-02-12 00:48:44 -03:00
Gabriel Ferreira
b6b8bfbaad build: print compilation errors in case ./ns3 run fail 2022-02-12 00:48:43 -03:00
Gabriel Ferreira
4b01479b04 build: additional CMake and ns3 fixes
Includes:
- add additional find_external_library default search paths
- add option to enable/disable DPDK and make it disable by default
- skip test-ns3.py test cases if dependencies are not installed
- improve searching in library parent directories
- replace FindPython with FindPythonInterp and FindPythonLibs
- stub targets for doxygen/sphinx when dependencies are missing
2022-02-11 16:13:07 -03:00
Gabriel Ferreira
23a802f4b6 build: print a message if a build target does not exist in ns3 2022-02-09 15:59:01 -03:00
Gabriel Ferreira
6e45febbf7 build: fix ns3 run from source file path, add lldb option and tests 2022-02-08 18:40:09 -03:00
Gabriel Ferreira
acd5da1957 build: refresh project on scratch changes 2022-02-02 23:37:56 +00: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
Tom Henderson
d0d44d747a doc: Add contributing guide to build 2022-01-24 12:16:35 -08: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
330ffb75b6 CI: add flags required by recent openmpi to run on the CI 2022-01-19 16:25:03 -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
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
Gabriel Ferreira
6d665d5901 build: fix ns3 path resolution when running waf executables
When waf output directory is different from the default
2021-12-21 13:21:31 -03:00
Gabriel Ferreira
9d9f765ba6 build: additional CMake and ns3 bugfixes 2021-12-16 02:29:59 +00:00