From 574992f77abbba6524eab3a8c1b3e4af5796ce1e Mon Sep 17 00:00:00 2001 From: Paul Guyot Date: Tue, 23 Sep 2025 07:15:09 +0200 Subject: [PATCH] Fix duplicate linked objects warnings Signed-off-by: Paul Guyot --- src/libAtomVM/CMakeLists.txt | 4 ---- src/platforms/generic_unix/CMakeLists.txt | 4 +--- src/platforms/generic_unix/lib/CMakeLists.txt | 6 +++++- tests/CMakeLists.txt | 19 +++++-------------- tools/packbeam/CMakeLists.txt | 4 +--- 5 files changed, 12 insertions(+), 25 deletions(-) diff --git a/src/libAtomVM/CMakeLists.txt b/src/libAtomVM/CMakeLists.txt index 2a5c58bd05..45a19e6678 100644 --- a/src/libAtomVM/CMakeLists.txt +++ b/src/libAtomVM/CMakeLists.txt @@ -306,10 +306,6 @@ endif() target_include_directories(libAtomVM PUBLIC ${CMAKE_CURRENT_BINARY_DIR}) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/version.h.in ${CMAKE_CURRENT_BINARY_DIR}/avm_version.h) -if (NOT ${CMAKE_SYSTEM_NAME} STREQUAL "Generic") - target_link_libraries(libAtomVM PUBLIC libAtomVM${CMAKE_SYSTEM_NAME}-${CMAKE_SYSTEM_PROCESSOR}) -endif() - add_dependencies(libAtomVM generated generated-nifs-hash) if (COVERAGE) diff --git a/src/platforms/generic_unix/CMakeLists.txt b/src/platforms/generic_unix/CMakeLists.txt index 933971dd39..04e30e1279 100644 --- a/src/platforms/generic_unix/CMakeLists.txt +++ b/src/platforms/generic_unix/CMakeLists.txt @@ -44,13 +44,11 @@ add_subdirectory(lib) target_include_directories(AtomVM PUBLIC lib/) add_subdirectory(../../libAtomVM libAtomVM) -target_link_libraries(AtomVM PRIVATE libAtomVM) - set( PLATFORM_LIB_SUFFIX ${CMAKE_SYSTEM_NAME}-${CMAKE_SYSTEM_PROCESSOR} ) -target_link_libraries(AtomVM PRIVATE libAtomVM${PLATFORM_LIB_SUFFIX}) +target_link_libraries(AtomVM PRIVATE libAtomVM${PLATFORM_LIB_SUFFIX} libAtomVM) if(AVM_DISABLE_JIT) set(precompiled_suffix) diff --git a/src/platforms/generic_unix/lib/CMakeLists.txt b/src/platforms/generic_unix/lib/CMakeLists.txt index da9c41e8e6..416e4ce35a 100644 --- a/src/platforms/generic_unix/lib/CMakeLists.txt +++ b/src/platforms/generic_unix/lib/CMakeLists.txt @@ -69,7 +69,11 @@ define_if_function_exists(libAtomVM${PLATFORM_LIB_SUFFIX} signal "signal.h" PRIV define_if_function_exists(libAtomVM${PLATFORM_LIB_SUFFIX} getservbyname "netdb.h" PRIVATE HAVE_SERVBYNAME) define_if_function_exists(libAtomVM${PLATFORM_LIB_SUFFIX} gethostname "unistd.h" PRIVATE HAVE_GETHOSTNAME) -target_link_libraries(libAtomVM${PLATFORM_LIB_SUFFIX} PUBLIC libAtomVM) +# Get include directories and compile definitions from libAtomVM without linking +target_include_directories(libAtomVM${PLATFORM_LIB_SUFFIX} PRIVATE + $) +target_compile_definitions(libAtomVM${PLATFORM_LIB_SUFFIX} PRIVATE + $) include_directories(${CMAKE_SOURCE_DIR}/src/platforms/generic_unix/lib) include(MbedTLS) diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 42ef857dda..ced91fe80b 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -58,15 +58,6 @@ if(${CMAKE_SYSTEM_NAME} STREQUAL "Linux") endif() endif() -include(MbedTLS) -if (MbedTLS_FOUND) - target_link_libraries(test-erlang PRIVATE MbedTLS::mbedtls) - target_link_libraries(test-enif PRIVATE MbedTLS::mbedtls) - target_link_libraries(test-heap PRIVATE MbedTLS::mbedtls) - target_link_libraries(test-mailbox PRIVATE MbedTLS::mbedtls) - target_link_libraries(test-structs PRIVATE MbedTLS::mbedtls) -endif() - set( PLATFORM_LIB_SUFFIX ${CMAKE_SYSTEM_NAME}-${CMAKE_SYSTEM_PROCESSOR} @@ -90,11 +81,11 @@ target_include_directories(test-enif PRIVATE ../src/libAtomVM) target_include_directories(test-heap PRIVATE ../src/libAtomVM) target_include_directories(test-mailbox PRIVATE ../src/libAtomVM) target_include_directories(test-structs PRIVATE ../src/libAtomVM) -target_link_libraries(test-erlang PRIVATE libAtomVM libAtomVM${PLATFORM_LIB_SUFFIX}) -target_link_libraries(test-enif PRIVATE libAtomVM libAtomVM${PLATFORM_LIB_SUFFIX}) -target_link_libraries(test-heap PRIVATE libAtomVM libAtomVM${PLATFORM_LIB_SUFFIX}) -target_link_libraries(test-mailbox PRIVATE libAtomVM libAtomVM${PLATFORM_LIB_SUFFIX}) -target_link_libraries(test-structs PRIVATE libAtomVM libAtomVM${PLATFORM_LIB_SUFFIX}) +target_link_libraries(test-erlang PRIVATE libAtomVM${PLATFORM_LIB_SUFFIX} libAtomVM) +target_link_libraries(test-enif PRIVATE libAtomVM${PLATFORM_LIB_SUFFIX} libAtomVM) +target_link_libraries(test-heap PRIVATE libAtomVM${PLATFORM_LIB_SUFFIX} libAtomVM) +target_link_libraries(test-mailbox PRIVATE libAtomVM${PLATFORM_LIB_SUFFIX} libAtomVM) +target_link_libraries(test-structs PRIVATE libAtomVM${PLATFORM_LIB_SUFFIX} libAtomVM) # Except for XCode, also compile beams if (NOT "${CMAKE_GENERATOR}" MATCHES "Xcode") diff --git a/tools/packbeam/CMakeLists.txt b/tools/packbeam/CMakeLists.txt index 09cc143059..5b0314da30 100644 --- a/tools/packbeam/CMakeLists.txt +++ b/tools/packbeam/CMakeLists.txt @@ -49,10 +49,8 @@ set( PLATFORM_LIB_SUFFIX ${CMAKE_SYSTEM_NAME}-${CMAKE_SYSTEM_PROCESSOR} ) -target_link_libraries(PackBEAM PRIVATE libAtomVM${PLATFORM_LIB_SUFFIX}) - +target_link_libraries(PackBEAM PRIVATE libAtomVM${PLATFORM_LIB_SUFFIX} libAtomVM) target_include_directories(PackBEAM PUBLIC ../../src/libAtomVM) -target_link_libraries(PackBEAM PRIVATE libAtomVM) if (COVERAGE) include(CodeCoverage)