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,26 +1,29 @@
set(name sixlowpan)
set(source_files helper/sixlowpan-helper.cc model/sixlowpan-header.cc
model/sixlowpan-net-device.cc
)
set(header_files helper/sixlowpan-helper.h model/sixlowpan-header.h
model/sixlowpan-net-device.h
)
set(libraries_to_link ${libinternet} ${libinternet} ${libcore})
set(example_as_test_suite)
if(${ENABLE_EXAMPLES})
set(example_as_test_suite test/sixlowpan-examples-test-suite.cc)
set(example_as_test_suite
test/sixlowpan-examples-test-suite.cc
)
endif()
set(test_sources
${example_as_test_suite} test/mock-net-device.cc
test/sixlowpan-fragmentation-test.cc test/sixlowpan-hc1-test.cc
test/sixlowpan-iphc-stateful-test.cc test/sixlowpan-iphc-test.cc
)
build_lib("${name}" "${source_files}" "${header_files}" "${libraries_to_link}"
"${test_sources}"
build_lib(
LIBNAME sixlowpan
SOURCE_FILES
helper/sixlowpan-helper.cc
model/sixlowpan-header.cc
model/sixlowpan-net-device.cc
HEADER_FILES
helper/sixlowpan-helper.h
model/sixlowpan-header.h
model/sixlowpan-net-device.h
LIBRARIES_TO_LINK
${libinternet}
${libinternet}
${libcore}
TEST_SOURCES
${example_as_test_suite}
test/mock-net-device.cc
test/sixlowpan-fragmentation-test.cc
test/sixlowpan-hc1-test.cc
test/sixlowpan-iphc-stateful-test.cc
test/sixlowpan-iphc-test.cc
)

View File

@@ -1,39 +1,44 @@
set(name example-sixlowpan)
set(source_files ${name}.cc)
set(header_files)
set(libraries_to_link ${libnetwork} ${libsixlowpan} ${libinternet} ${libcsma}
${libinternet-apps}
)
build_lib_example(
"${name}" "${source_files}" "${header_files}" "${libraries_to_link}"
NAME example-sixlowpan
SOURCE_FILES example-sixlowpan.cc
LIBRARIES_TO_LINK
${libnetwork}
${libsixlowpan}
${libinternet}
${libcsma}
${libinternet-apps}
)
set(name example-ping-lr-wpan)
set(source_files ${name}.cc)
set(header_files)
set(libraries_to_link ${libnetwork} ${libsixlowpan} ${libinternet}
${liblr-wpan} ${libinternet-apps}
)
build_lib_example(
"${name}" "${source_files}" "${header_files}" "${libraries_to_link}"
NAME example-ping-lr-wpan
SOURCE_FILES example-ping-lr-wpan.cc
LIBRARIES_TO_LINK
${libnetwork}
${libsixlowpan}
${libinternet}
${liblr-wpan}
${libinternet-apps}
)
set(name example-ping-lr-wpan-beacon)
set(source_files ${name}.cc)
set(header_files)
set(libraries_to_link ${libnetwork} ${libsixlowpan} ${libinternet}
${liblr-wpan} ${libinternet-apps}
)
build_lib_example(
"${name}" "${source_files}" "${header_files}" "${libraries_to_link}"
NAME example-ping-lr-wpan-beacon
SOURCE_FILES example-ping-lr-wpan-beacon.cc
LIBRARIES_TO_LINK
${libnetwork}
${libsixlowpan}
${libinternet}
${liblr-wpan}
${libinternet-apps}
)
set(name example-ping-lr-wpan-mesh-under)
set(source_files ${name}.cc)
set(header_files)
set(libraries_to_link ${libnetwork} ${libsixlowpan} ${libinternet}
${liblr-wpan} ${libinternet-apps} ${libcsma}
)
build_lib_example(
"${name}" "${source_files}" "${header_files}" "${libraries_to_link}"
NAME example-ping-lr-wpan-mesh-under
SOURCE_FILES example-ping-lr-wpan-mesh-under.cc
LIBRARIES_TO_LINK
${libnetwork}
${libsixlowpan}
${libinternet}
${liblr-wpan}
${libinternet-apps}
${libcsma}
)