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
This commit is contained in:
Gabriel Ferreira
2022-01-27 11:40:41 -03:00
parent d470fb77d4
commit 41aacec626
108 changed files with 2716 additions and 2704 deletions

View File

@@ -1,8 +1,15 @@
set(name mpi)
include_directories(${MPI_CXX_INCLUDE_DIRS})
set(source_files
set(example_as_test_suite)
if(${ENABLE_EXAMPLES})
set(example_as_test_suite
test/mpi-test-suite.cc
)
endif()
build_lib(
LIBNAME mpi
SOURCE_FILES
model/distributed-simulator-impl.cc
model/granted-time-window-mpi-interface.cc
model/mpi-interface.cc
@@ -12,21 +19,13 @@ set(source_files
model/parallel-communication-interface.h
model/remote-channel-bundle-manager.cc
model/remote-channel-bundle.cc
)
set(header_files model/mpi-interface.h model/mpi-receiver.h
model/parallel-communication-interface.h
)
set(libraries_to_link ${libcore} ${libnetwork} ${MPI_CXX_LIBRARIES})
set(example_as_test_suite)
if(${ENABLE_EXAMPLES})
set(example_as_test_suite test/mpi-test-suite.cc)
endif()
set(test_sources ${example_as_test_suite})
build_lib("${name}" "${source_files}" "${header_files}" "${libraries_to_link}"
"${test_sources}"
HEADER_FILES
model/mpi-interface.h
model/mpi-receiver.h
model/parallel-communication-interface.h
LIBRARIES_TO_LINK
${libcore}
${libnetwork}
${MPI_CXX_LIBRARIES}
TEST_SOURCES ${example_as_test_suite}
)

View File

@@ -1,20 +1,35 @@
include_directories(${MPI_CXX_INCLUDE_DIRS})
link_libraries(${MPI_CXX_LIBRARIES})
set(name simple-distributed)
set(source_files ${name}.cc mpi-test-fixtures.cc)
set(header_files)
set(libraries_to_link ${libmpi} ${libpoint-to-point} ${libinternet}
${libnix-vector-routing} ${libapplications}
)
build_lib_example(
"${name}" "${source_files}" "${header_files}" "${libraries_to_link}"
set(base_examples
simple-distributed
simple-distributed-mpi-comm
nms-p2p-nix-distributed
simple-distributed-empty-node
)
set(name third-distributed)
set(source_files ${name}.cc mpi-test-fixtures.cc)
set(header_files)
set(libraries_to_link
foreach(
example
${base_examples}
)
build_lib_example(
NAME ${example}
SOURCE_FILES ${example}.cc
mpi-test-fixtures.cc
LIBRARIES_TO_LINK
${libmpi}
${libpoint-to-point}
${libinternet}
${libnix-vector-routing}
${libapplications}
)
endforeach()
build_lib_example(
NAME third-distributed
SOURCE_FILES third-distributed.cc
mpi-test-fixtures.cc
LIBRARIES_TO_LINK
${libmpi}
${libpoint-to-point}
${libinternet}
@@ -23,36 +38,3 @@ set(libraries_to_link
${libcsma}
${libapplications}
)
build_lib_example(
"${name}" "${source_files}" "${header_files}" "${libraries_to_link}"
)
set(name nms-p2p-nix-distributed)
set(source_files ${name}.cc mpi-test-fixtures.cc)
set(header_files)
set(libraries_to_link ${libmpi} ${libpoint-to-point} ${libinternet}
${libnix-vector-routing} ${libapplications}
)
build_lib_example(
"${name}" "${source_files}" "${header_files}" "${libraries_to_link}"
)
set(name simple-distributed-empty-node)
set(source_files ${name}.cc mpi-test-fixtures.cc)
set(header_files)
set(libraries_to_link ${libmpi} ${libpoint-to-point} ${libinternet}
${libnix-vector-routing} ${libapplications}
)
build_lib_example(
"${name}" "${source_files}" "${header_files}" "${libraries_to_link}"
)
set(name simple-distributed-mpi-comm)
set(source_files ${name}.cc mpi-test-fixtures.cc)
set(header_files)
set(libraries_to_link ${libmpi} ${libpoint-to-point} ${libinternet}
${libnix-vector-routing} ${libapplications}
)
build_lib_example(
"${name}" "${source_files}" "${header_files}" "${libraries_to_link}"
)