From c3be5dc690a11f86760de01ed4333f656917a51b Mon Sep 17 00:00:00 2001 From: kmurray Date: Wed, 28 Mar 2018 13:42:24 -0400 Subject: CMake: Ensure abc executable depends on libabc This ensures that libabc is built only once. Previously the code for libabc was being built twice: once for the abc executable target, and again for the libabc target. --- CMakeLists.txt | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index d3ac737b..7cf6f19a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -88,15 +88,17 @@ function(abc_properties target visibility) target_link_libraries(${target} ${visibility} ${ABC_LIBS}) endfunction() -add_executable(abc ${ABC_SRC}) -abc_properties(abc PRIVATE) - -list(REMOVE_ITEM ABC_SRC src/base/main/main.c) +set(ABC_MAIN_SRC src/base/main/main.c) +list(REMOVE_ITEM ABC_SRC ${ABC_MAIN_SRC}) add_library(libabc EXCLUDE_FROM_ALL ${ABC_SRC}) abc_properties(libabc PUBLIC) set_property(TARGET libabc PROPERTY OUTPUT_NAME abc) +add_executable(abc ${ABC_MAIN_SRC}) +target_link_libraries(abc PRIVATE libabc) +abc_properties(abc PRIVATE) + add_library(libabc-pic EXCLUDE_FROM_ALL ${ABC_SRC}) abc_properties(libabc-pic PUBLIC) set_property(TARGET libabc-pic PROPERTY POSITION_INDEPENDENT_CODE ON) -- cgit v1.2.3