diff options
author | kmurray <k.murray@utoronto.ca> | 2018-03-28 13:42:24 -0400 |
---|---|---|
committer | kmurray <k.murray@utoronto.ca> | 2018-03-28 13:42:24 -0400 |
commit | c3be5dc690a11f86760de01ed4333f656917a51b (patch) | |
tree | 4a6ce189b93bf444a6a1479d34830099e9097295 | |
parent | a2d59be3f7f05c4757ade8b3b6f9fdf425de5cc0 (diff) | |
download | abc-c3be5dc690a11f86760de01ed4333f656917a51b.tar.gz abc-c3be5dc690a11f86760de01ed4333f656917a51b.tar.bz2 abc-c3be5dc690a11f86760de01ed4333f656917a51b.zip |
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.
-rw-r--r-- | CMakeLists.txt | 10 |
1 files 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) |