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.
This commit is contained in:
kmurray 2018-03-28 13:42:24 -04:00
parent a2d59be3f7
commit c3be5dc690
1 changed files with 6 additions and 4 deletions

View File

@ -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)