From f1d1a9eba39519532621b89bf298a0c037e9cf0c Mon Sep 17 00:00:00 2001 From: Gabriele Castellano Date: Thu, 3 Apr 2025 13:47:46 +0200 Subject: [PATCH 01/10] add overarching CMakeLists for native CMake integration --- .gitignore | 5 +++ CMakeLists.txt | 88 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 93 insertions(+) create mode 100644 CMakeLists.txt diff --git a/.gitignore b/.gitignore index e4a9790f..51fe45bf 100644 --- a/.gitignore +++ b/.gitignore @@ -2,9 +2,14 @@ astra-sim-alibabacloud/build/simai_analytical/build/ astra-sim-alibabacloud/build/astra_ns3/build/ astra-sim-alibabacloud/extern/ +astra-sim-alibabacloud/inputs/config/ +!astra-sim-alibabacloud/inputs/config/SimAI.conf bin/ results/ test/log/ *.log .cur* .DS_Store + +**/build +**/cmake-cache diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 00000000..73fbebfc --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,88 @@ +# CMake requirement +cmake_minimum_required(VERSION 3.15) + +# C++ requirement +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD_REQUIRED True) +add_definitions("-Wall -g") +SET(CMAKE_BUILD_TYPE "Debug") + +# Compiler requirement +if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU") + if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 5.3) + message(FATAL_ERROR "g++ (GNU) version should be greater than 5.3, but found ${CMAKE_CXX_COMPILER_VERSION}") + endif() +endif() + +set(NS3_SRC_DIR "${CMAKE_CURRENT_SOURCE_DIR}/ns-3-alibabacloud/simulation") +set(ASTRA_SIM_DIR "${CMAKE_CURRENT_SOURCE_DIR}/astra-sim-alibabacloud/astra-sim") +set(BUILD_DIR "${CMAKE_CURRENT_BINARY_DIR}") +set(RESULT_DIR "${CMAKE_CURRENT_SOURCE_DIR}}/result") + +# Create required directories +file(MAKE_DIRECTORY ${BUILD_DIR}) +file(MAKE_DIRECTORY ${RESULT_DIR}) + +# Option to clean build and result directories +option(CLEAN_BUILD "Clean build directory" OFF) +option(CLEAN_RESULT "Clean result directory" OFF) +option(BUILD_SIM "Build NS3 simulation" ON) +option(BUILD_ANALYTICAL "Build analytical" OFF) +option(BUILD_PHY "Build physical" OFF) + +if(CLEAN_BUILD) + message(STATUS "Cleaning build directory: ${BUILD_DIR}") + file(REMOVE_RECURSE ${BUILD_DIR}) + file(REMOVE_RECURSE "${NS3_DIR}/simulation/build") + file(REMOVE_RECURSE "${NS3_DIR}/simulation/cmake-cache") + file(MAKE_DIRECTORY ${BUILD_DIR}) +endif() + +if(CLEAN_RESULT) + message(STATUS "Cleaning result directory: ${RESULT_DIR}") + file(REMOVE_RECURSE ${RESULT_DIR}) + file(MAKE_DIRECTORY ${RESULT_DIR}) +endif() + +if(BUILD_SIM) + # AstraSim + add_subdirectory(astra-sim-alibabacloud/build/astra_ns3) + + file(GLOB_RECURSE astra_sim_files CONFIGURE_DEPENDS "${ASTRA_SIM_DIR}/*") + foreach(file ${astra_sim_files}) + string(REPLACE "${ASTRA_SIM_DIR}/" "astra-sim/" relative_path ${file}) + get_filename_component(output_dir ${NS3_SRC_DIR}/src/applications/${relative_path} DIRECTORY) + file(MAKE_DIRECTORY ${output_dir}) + configure_file(${file} ${NS3_SRC_DIR}/src/applications/${relative_path} COPYONLY) + endforeach() + + file(GLOB scratch_files + CONFIGURE_DEPENDS + ${ASTRA_SIM_DIR}/network_frontend/ns3/*) + foreach(file ${scratch_files}) + get_filename_component(filename ${file} NAME) + configure_file(${file} ${NS3_SRC_DIR}/scratch/${filename} COPYONLY) + endforeach() + + # NS3 + add_subdirectory(${NS3_SRC_DIR} ${NS3_SRC_DIR}/cmake-cache) + + # Link binaries + string(TOLOWER ${CMAKE_BUILD_TYPE} profile) + add_custom_target(create_ns3_symlink + COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_CURRENT_SOURCE_DIR}/bin" + COMMAND ${CMAKE_COMMAND} -E create_symlink + "${NS3_SRC_DIR}/build/scratch/ns3.36.1-AstraSimNetwork-${profile}" + "${CMAKE_CURRENT_SOURCE_DIR}/bin/SimAI_simulator2" + DEPENDS scratch_AstraSimNetwork + COMMENT "Creating simulator symlink..." + ) +endif() + +if(BUILD_ANALYTICAL) + add_subdirectory(astra-sim-alibabacloud/build/simai_analytical) +endif() + +if(BUILD_PHY) + add_subdirectory(astra-sim-alibabacloud/build/simai_phy) +endif() From 5f92c6fc7a5117d633c964af309320b46700b1b6 Mon Sep 17 00:00:00 2001 From: Gabriele Castellano Date: Thu, 3 Apr 2025 15:17:35 +0200 Subject: [PATCH 02/10] update ns3 submodule --- ns-3-alibabacloud | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ns-3-alibabacloud b/ns-3-alibabacloud index 781b7d80..29c45258 160000 --- a/ns-3-alibabacloud +++ b/ns-3-alibabacloud @@ -1 +1 @@ -Subproject commit 781b7d804736bdbbc184254636d6a3c8cfea9ab4 +Subproject commit 29c45258d9ffcd9ebf4fe384450c2c0d97a34833 From ac053d6b9f184ff7e6c723306eb4916adfeab902 Mon Sep 17 00:00:00 2001 From: Gabriele Castellano Date: Fri, 4 Apr 2025 16:07:57 +0200 Subject: [PATCH 03/10] integrate ns3 build options and build profile in root project --- .gitignore | 1 + CMakeLists.txt | 24 +++++++++++++++---- .../build/astra_ns3/CMakeLists.txt | 4 +++- 3 files changed, 24 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index 51fe45bf..b63af361 100644 --- a/.gitignore +++ b/.gitignore @@ -13,3 +13,4 @@ test/log/ **/build **/cmake-cache +!astra-sim-alibabacloud/build diff --git a/CMakeLists.txt b/CMakeLists.txt index 73fbebfc..38cf0c18 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,7 +5,10 @@ cmake_minimum_required(VERSION 3.15) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED True) add_definitions("-Wall -g") -SET(CMAKE_BUILD_TYPE "Debug") + +if(NOT CMAKE_BUILD_TYPE) + set(CMAKE_BUILD_TYPE "Debug" CACHE STRING "Default build type" FORCE) +endif() # Compiler requirement if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU") @@ -14,6 +17,8 @@ if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU") endif() endif() +project(SimAI) + set(NS3_SRC_DIR "${CMAKE_CURRENT_SOURCE_DIR}/ns-3-alibabacloud/simulation") set(ASTRA_SIM_DIR "${CMAKE_CURRENT_SOURCE_DIR}/astra-sim-alibabacloud/astra-sim") set(BUILD_DIR "${CMAKE_CURRENT_BINARY_DIR}") @@ -49,6 +54,7 @@ if(BUILD_SIM) add_subdirectory(astra-sim-alibabacloud/build/astra_ns3) file(GLOB_RECURSE astra_sim_files CONFIGURE_DEPENDS "${ASTRA_SIM_DIR}/*") + list(FILTER astra_sim_files EXCLUDE REGEX "/network_frontend/") foreach(file ${astra_sim_files}) string(REPLACE "${ASTRA_SIM_DIR}/" "astra-sim/" relative_path ${file}) get_filename_component(output_dir ${NS3_SRC_DIR}/src/applications/${relative_path} DIRECTORY) @@ -65,15 +71,25 @@ if(BUILD_SIM) endforeach() # NS3 + string(TOLOWER ${CMAKE_BUILD_TYPE} build_type) + if (build_type STREQUAL "release") + set(NS3_ASSERT OFF CACHE BOOL "Override NS3_ASSERT" FORCE) + set(NS3_LOG OFF CACHE BOOL "Override NS3_LOG" FORCE) + endif () + if (NOT DEFINED NS3_WARNINGS_AS_ERRORS) + set(NS3_WARNINGS_AS_ERRORS OFF CACHE BOOL "Override NS3_WARNINGS_AS_ERRORS" FORCE) + endif () + if (NOT DEFINED NS3_MTP) + set(NS3_MTP ON CACHE BOOL "Override NS3_MTP" FORCE) + endif () add_subdirectory(${NS3_SRC_DIR} ${NS3_SRC_DIR}/cmake-cache) # Link binaries - string(TOLOWER ${CMAKE_BUILD_TYPE} profile) add_custom_target(create_ns3_symlink COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_CURRENT_SOURCE_DIR}/bin" COMMAND ${CMAKE_COMMAND} -E create_symlink - "${NS3_SRC_DIR}/build/scratch/ns3.36.1-AstraSimNetwork-${profile}" - "${CMAKE_CURRENT_SOURCE_DIR}/bin/SimAI_simulator2" + "$" + "${CMAKE_CURRENT_SOURCE_DIR}/bin/SimAI_simulator" DEPENDS scratch_AstraSimNetwork COMMENT "Creating simulator symlink..." ) diff --git a/astra-sim-alibabacloud/build/astra_ns3/CMakeLists.txt b/astra-sim-alibabacloud/build/astra_ns3/CMakeLists.txt index 90340392..1c467487 100644 --- a/astra-sim-alibabacloud/build/astra_ns3/CMakeLists.txt +++ b/astra-sim-alibabacloud/build/astra_ns3/CMakeLists.txt @@ -5,7 +5,9 @@ cmake_minimum_required(VERSION 3.15) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED True) add_definitions("-Wall -g") -SET(CMAKE_BUILD_TYPE "Debug") +if(NOT CMAKE_BUILD_TYPE) + set(CMAKE_BUILD_TYPE "Debug" CACHE STRING "Default build type" FORCE) +endif() # Compiler requirement if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU") From 47c1482dbe8c0be2bf8941e867c4f45c973905f3 Mon Sep 17 00:00:00 2001 From: Gabriele Castellano Date: Tue, 9 Jun 2026 12:17:37 +0200 Subject: [PATCH 04/10] Apply fix from @Copilot Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 38cf0c18..561f438e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -38,8 +38,8 @@ option(BUILD_PHY "Build physical" OFF) if(CLEAN_BUILD) message(STATUS "Cleaning build directory: ${BUILD_DIR}") file(REMOVE_RECURSE ${BUILD_DIR}) - file(REMOVE_RECURSE "${NS3_DIR}/simulation/build") - file(REMOVE_RECURSE "${NS3_DIR}/simulation/cmake-cache") + file(REMOVE_RECURSE "${NS3_SRC_DIR}/build") + file(REMOVE_RECURSE "${NS3_SRC_DIR}/cmake-cache") file(MAKE_DIRECTORY ${BUILD_DIR}) endif() From 012be77b9294c221e021fabea34bdf8b607806d5 Mon Sep 17 00:00:00 2001 From: Gabriele Castellano Date: Tue, 9 Jun 2026 12:24:03 +0200 Subject: [PATCH 05/10] remove stray bracket in result path --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 561f438e..5e4b5350 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -22,7 +22,7 @@ project(SimAI) set(NS3_SRC_DIR "${CMAKE_CURRENT_SOURCE_DIR}/ns-3-alibabacloud/simulation") set(ASTRA_SIM_DIR "${CMAKE_CURRENT_SOURCE_DIR}/astra-sim-alibabacloud/astra-sim") set(BUILD_DIR "${CMAKE_CURRENT_BINARY_DIR}") -set(RESULT_DIR "${CMAKE_CURRENT_SOURCE_DIR}}/result") +set(RESULT_DIR "${CMAKE_CURRENT_SOURCE_DIR}/result") # Create required directories file(MAKE_DIRECTORY ${BUILD_DIR}) From 8ae8a9615f96c1a3b9498e54b4fb782f173cc794 Mon Sep 17 00:00:00 2001 From: Gabriele Castellano Date: Tue, 9 Jun 2026 16:20:56 +0200 Subject: [PATCH 06/10] avoid duplicate source files in the ns3 folder and uniform behavior to symlink/stubs generation for native ns3 headers --- CMakeLists.txt | 103 ++++++++++++++++++++++++++++++++++++++-------- ns-3-alibabacloud | 2 +- 2 files changed, 87 insertions(+), 18 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 5e4b5350..937b73b0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -24,6 +24,8 @@ set(ASTRA_SIM_DIR "${CMAKE_CURRENT_SOURCE_DIR}/astra-sim-alibabacloud/astra-sim" set(BUILD_DIR "${CMAKE_CURRENT_BINARY_DIR}") set(RESULT_DIR "${CMAKE_CURRENT_SOURCE_DIR}/result") +set(CMAKE_EXPORT_COMPILE_COMMANDS ON) + # Create required directories file(MAKE_DIRECTORY ${BUILD_DIR}) file(MAKE_DIRECTORY ${RESULT_DIR}) @@ -31,16 +33,62 @@ file(MAKE_DIRECTORY ${RESULT_DIR}) # Option to clean build and result directories option(CLEAN_BUILD "Clean build directory" OFF) option(CLEAN_RESULT "Clean result directory" OFF) -option(BUILD_SIM "Build NS3 simulation" ON) + +# Build types +option(BUILD_SIM "Build NS3 simulation" OFF) option(BUILD_ANALYTICAL "Build analytical" OFF) option(BUILD_PHY "Build physical" OFF) +# Other options +option(SYS_ASSERTS "Enable assert() in all profile with -UNDEBUG" OFF) + +get_filename_component(BUILD_DIR_NAME ${BUILD_DIR} NAME) + +function(ns3_export_file src dst) + get_filename_component(_dst_abs "${dst}" ABSOLUTE) + get_filename_component(dst_dir "${dst}" DIRECTORY) + file(MAKE_DIRECTORY "${dst_dir}") + + if(NS3_USE_RELATIVE_PATHS_SYMLINKS) + # Compute a relative path from destination directory to source file. + file(RELATIVE_PATH src_path "${dst_dir}" "${src}") + # Ensure forward slashes for the preprocessor include + file(TO_CMAKE_PATH "${src_path}" src_path) + else() + set(src_path "${src}") + endif() + + if(NS3_EXPORT_HEADERS_AS_STUBS) + # Remove destination file if it is a symlink + if(IS_SYMLINK "${_dst_abs}") + file(REMOVE "${dst}") + endif() + if("${src_path}" MATCHES "\\.(h|hh)$") + file(GENERATE OUTPUT "${dst}" CONTENT "#include \"${src_path}\"\n") + else() + # Source files are just copied + configure_file(${src} ${dst} COPYONLY) + endif() + else() + if(NOT IS_SYMLINK "${_dst_abs}") + # Create/overwrite a symbolic link. + file(CREATE_LINK "${src_path}" "${dst}" SYMBOLIC) + endif() + endif() +endfunction() + if(CLEAN_BUILD) message(STATUS "Cleaning build directory: ${BUILD_DIR}") - file(REMOVE_RECURSE ${BUILD_DIR}) - file(REMOVE_RECURSE "${NS3_SRC_DIR}/build") - file(REMOVE_RECURSE "${NS3_SRC_DIR}/cmake-cache") + file(REMOVE_RECURSE "${BUILD_DIR}") file(MAKE_DIRECTORY ${BUILD_DIR}) + message(STATUS "Cleaning output directory: ${NS3_SRC_DIR}/build") + file(REMOVE "${NS3_SRC_DIR}/.lock-ns3_linux_build") + file(REMOVE_RECURSE "${NS3_SRC_DIR}/build") + message(STATUS "Cleaning build directory: ${NS3_SRC_DIR}/${BUILD_DIR_NAME}") + file(REMOVE_RECURSE "${NS3_SRC_DIR}/${BUILD_DIR_NAME}") + message(STATUS "Cleaning bin directory: ${CMAKE_CURRENT_SOURCE_DIR}/bin") + file(REMOVE_RECURSE "${CMAKE_CURRENT_SOURCE_DIR}/bin") + file(MAKE_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/bin") endif() if(CLEAN_RESULT) @@ -49,6 +97,11 @@ if(CLEAN_RESULT) file(MAKE_DIRECTORY ${RESULT_DIR}) endif() +if(SYS_ASSERTS) + add_compile_options(-UNDEBUG) + message(STATUS "Asserts enabled for all profiles.") +endif() + if(BUILD_SIM) # AstraSim add_subdirectory(astra-sim-alibabacloud/build/astra_ns3) @@ -57,23 +110,27 @@ if(BUILD_SIM) list(FILTER astra_sim_files EXCLUDE REGEX "/network_frontend/") foreach(file ${astra_sim_files}) string(REPLACE "${ASTRA_SIM_DIR}/" "astra-sim/" relative_path ${file}) - get_filename_component(output_dir ${NS3_SRC_DIR}/src/applications/${relative_path} DIRECTORY) - file(MAKE_DIRECTORY ${output_dir}) - configure_file(${file} ${NS3_SRC_DIR}/src/applications/${relative_path} COPYONLY) + ns3_export_file("${file}" "${NS3_SRC_DIR}/src/applications/${relative_path}") endforeach() - file(GLOB scratch_files - CONFIGURE_DEPENDS - ${ASTRA_SIM_DIR}/network_frontend/ns3/*) + file(GLOB scratch_files CONFIGURE_DEPENDS ${ASTRA_SIM_DIR}/network_frontend/ns3/*) foreach(file ${scratch_files}) get_filename_component(filename ${file} NAME) - configure_file(${file} ${NS3_SRC_DIR}/scratch/${filename} COPYONLY) + ns3_export_file("${file}" "${NS3_SRC_DIR}/scratch/${filename}") endforeach() - # NS3 + # Register original files as configure dependencies + set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS + ${astra_sim_files} + ${scratch_files} + ) + + # NS3 options string(TOLOWER ${CMAKE_BUILD_TYPE} build_type) if (build_type STREQUAL "release") - set(NS3_ASSERT OFF CACHE BOOL "Override NS3_ASSERT" FORCE) + if (NOT DEFINED NS3_ASSERT) + set(NS3_ASSERT OFF CACHE BOOL "Override NS3_ASSERT" FORCE) + endif () set(NS3_LOG OFF CACHE BOOL "Override NS3_LOG" FORCE) endif () if (NOT DEFINED NS3_WARNINGS_AS_ERRORS) @@ -82,14 +139,26 @@ if(BUILD_SIM) if (NOT DEFINED NS3_MTP) set(NS3_MTP ON CACHE BOOL "Override NS3_MTP" FORCE) endif () - add_subdirectory(${NS3_SRC_DIR} ${NS3_SRC_DIR}/cmake-cache) + + # Remap original source files in the debug information of the target + get_filename_component(COPIED_PREFIX_1 ${NS3_SRC_DIR}/src/applications/astra-sim REALPATH) + get_filename_component(ORIGINAL_PREFIX_1 ${ASTRA_SIM_DIR} REALPATH) + get_filename_component(COPIED_PREFIX_2 ${NS3_SRC_DIR}/scratch REALPATH) + get_filename_component(ORIGINAL_PREFIX_2 ${ASTRA_SIM_DIR}/network_frontend/ns3 REALPATH) + add_compile_options( + -ffile-prefix-map=${COPIED_PREFIX_1}=${ORIGINAL_PREFIX_1} + -ffile-prefix-map=${COPIED_PREFIX_2}=${ORIGINAL_PREFIX_2} + ) + + # NS3 + add_subdirectory(${NS3_SRC_DIR} ${NS3_SRC_DIR}/${BUILD_DIR_NAME}) # Link binaries - add_custom_target(create_ns3_symlink + add_custom_target(create_ns3_symlink ALL COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_CURRENT_SOURCE_DIR}/bin" COMMAND ${CMAKE_COMMAND} -E create_symlink - "$" - "${CMAKE_CURRENT_SOURCE_DIR}/bin/SimAI_simulator" + "$" + "${CMAKE_CURRENT_SOURCE_DIR}/bin/SimAI_simulator" DEPENDS scratch_AstraSimNetwork COMMENT "Creating simulator symlink..." ) diff --git a/ns-3-alibabacloud b/ns-3-alibabacloud index 29c45258..377b4e06 160000 --- a/ns-3-alibabacloud +++ b/ns-3-alibabacloud @@ -1 +1 @@ -Subproject commit 29c45258d9ffcd9ebf4fe384450c2c0d97a34833 +Subproject commit 377b4e06203a899208dbf557c7e8ddd1bce0a1f1 From 7440e1238a81473625467c2b16710d826d93d879 Mon Sep 17 00:00:00 2001 From: Gabriele Castellano Date: Tue, 9 Jun 2026 17:06:22 +0200 Subject: [PATCH 07/10] exclude directories from GLOB when iterating simulation files --- CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 937b73b0..aefa0001 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -106,14 +106,14 @@ if(BUILD_SIM) # AstraSim add_subdirectory(astra-sim-alibabacloud/build/astra_ns3) - file(GLOB_RECURSE astra_sim_files CONFIGURE_DEPENDS "${ASTRA_SIM_DIR}/*") + file(GLOB_RECURSE astra_sim_files LIST_DIRECTORIES false CONFIGURE_DEPENDS "${ASTRA_SIM_DIR}/*") list(FILTER astra_sim_files EXCLUDE REGEX "/network_frontend/") foreach(file ${astra_sim_files}) string(REPLACE "${ASTRA_SIM_DIR}/" "astra-sim/" relative_path ${file}) ns3_export_file("${file}" "${NS3_SRC_DIR}/src/applications/${relative_path}") endforeach() - file(GLOB scratch_files CONFIGURE_DEPENDS ${ASTRA_SIM_DIR}/network_frontend/ns3/*) + file(GLOB scratch_files LIST_DIRECTORIES false CONFIGURE_DEPENDS "${ASTRA_SIM_DIR}/network_frontend/ns3/*") foreach(file ${scratch_files}) get_filename_component(filename ${file} NAME) ns3_export_file("${file}" "${NS3_SRC_DIR}/scratch/${filename}") From c348f45bcb974301f7d4cfde1331ba399b376625 Mon Sep 17 00:00:00 2001 From: Gabriele Castellano Date: Tue, 9 Jun 2026 17:15:32 +0200 Subject: [PATCH 08/10] make debug info conditional on the build type Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- CMakeLists.txt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 937b73b0..d05991b4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,12 +4,15 @@ cmake_minimum_required(VERSION 3.15) # C++ requirement set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED True) -add_definitions("-Wall -g") +add_compile_options(-Wall) if(NOT CMAKE_BUILD_TYPE) set(CMAKE_BUILD_TYPE "Debug" CACHE STRING "Default build type" FORCE) endif() +if (CMAKE_BUILD_TYPE STREQUAL "Debug") + add_compile_options(-g) +endif() # Compiler requirement if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU") if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 5.3) From 10d4e97e28295d0b5d855382fc76585f69f23051 Mon Sep 17 00:00:00 2001 From: Gabriele Castellano Date: Tue, 9 Jun 2026 17:17:11 +0200 Subject: [PATCH 09/10] do not remove BUILD_DIR in CLEAN_BUILD configuration step --- CMakeLists.txt | 3 --- 1 file changed, 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index aefa0001..66f98096 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -78,9 +78,6 @@ function(ns3_export_file src dst) endfunction() if(CLEAN_BUILD) - message(STATUS "Cleaning build directory: ${BUILD_DIR}") - file(REMOVE_RECURSE "${BUILD_DIR}") - file(MAKE_DIRECTORY ${BUILD_DIR}) message(STATUS "Cleaning output directory: ${NS3_SRC_DIR}/build") file(REMOVE "${NS3_SRC_DIR}/.lock-ns3_linux_build") file(REMOVE_RECURSE "${NS3_SRC_DIR}/build") From adf47c8784008008823629c1dae2488c0998d2ad Mon Sep 17 00:00:00 2001 From: Gabriele Castellano Date: Tue, 9 Jun 2026 17:29:02 +0200 Subject: [PATCH 10/10] update ns-3 module --- ns-3-alibabacloud | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ns-3-alibabacloud b/ns-3-alibabacloud index 377b4e06..1e9c8746 160000 --- a/ns-3-alibabacloud +++ b/ns-3-alibabacloud @@ -1 +1 @@ -Subproject commit 377b4e06203a899208dbf557c7e8ddd1bce0a1f1 +Subproject commit 1e9c87465bd3cea911ec58af4454e29a1c484171