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:
@@ -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}
|
||||
)
|
||||
|
||||
@@ -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}"
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user