cmake: do not use intermediate libraries at all (not even OBJECTS)

This commit is contained in:
louiz’
2017-03-10 11:11:08 +01:00
parent 2013ed6f98
commit 2b6b577375
2 changed files with 31 additions and 35 deletions
+25 -29
View File
@@ -106,9 +106,10 @@ if(LITESQL_FOUND)
"biboudb" "biboudb"
LITESQL_GENERATED_SOURCES) LITESQL_GENERATED_SOURCES)
add_library(database OBJECT src/database/database.cpp set(source_database src/database/database.cpp ${LITESQL_GENERATED_SOURCES})
${LITESQL_GENERATED_SOURCES})
set(USE_DATABASE TRUE) set(USE_DATABASE TRUE)
else()
set(source_database)
endif() endif()
add_subdirectory("louloulibs") add_subdirectory("louloulibs")
@@ -130,51 +131,46 @@ endif()
# #
file(GLOB source_src_utils file(GLOB source_src_utils
src/utils/*.[hc]pp) src/utils/*.[hc]pp)
add_library(src_utils OBJECT ${source_src_utils})
# #
## irclib ## irclib
# #
file(GLOB source_irc file(GLOB source_irc
src/irc/*.[hc]pp) src/irc/*.[hc]pp)
add_library(irc OBJECT ${source_irc})
# #
## xmpp ## xmpp
# #
file(GLOB source_xmpp file(GLOB source_xmpp
src/xmpp/*.[hc]pp) src/xmpp/*.[hc]pp)
add_library(xmpp OBJECT ${source_xmpp})
# #
## identd ## identd
# #
file(GLOB source_identd file(GLOB source_identd
src/identd/*.[hc]pp) src/identd/*.[hc]pp)
add_library(identd OBJECT ${source_identd})
# #
## bridge ## bridge
# #
file(GLOB source_bridge file(GLOB source_bridge
src/bridge/*.[hc]pp) src/bridge/*.[hc]pp)
add_library(bridge OBJECT ${source_bridge})
# #
## Main executable ## Main executable
# #
add_executable(${PROJECT_NAME} src/main.cpp add_executable(${PROJECT_NAME} src/main.cpp
$<TARGET_OBJECTS:utils> ${source_utils}
$<TARGET_OBJECTS:config> ${source_config}
$<TARGET_OBJECTS:logger> ${source_logger}
$<TARGET_OBJECTS:network> ${source_network}
$<TARGET_OBJECTS:xmpplib> ${source_xmpplib}
$<TARGET_OBJECTS:xmpp> ${source_xmpp}
$<TARGET_OBJECTS:src_utils> ${source_src_utils}
$<TARGET_OBJECTS:bridge> ${source_bridge}
$<TARGET_OBJECTS:irc> ${source_irc}
$<TARGET_OBJECTS:identd> ${source_identd}
$<$<BOOL:${USE_DATABASE}>:$<TARGET_OBJECTS:database>>) ${source_database})
# #
## Tests ## Tests
@@ -182,17 +178,17 @@ add_executable(${PROJECT_NAME} src/main.cpp
file(GLOB source_tests file(GLOB source_tests
tests/*.cpp) tests/*.cpp)
add_executable(test_suite EXCLUDE_FROM_ALL ${source_tests} add_executable(test_suite EXCLUDE_FROM_ALL ${source_tests}
$<TARGET_OBJECTS:utils> ${source_utils}
$<TARGET_OBJECTS:config> ${source_config}
$<TARGET_OBJECTS:logger> ${source_logger}
$<TARGET_OBJECTS:network> ${source_network}
$<TARGET_OBJECTS:xmpplib> ${source_xmpplib}
$<TARGET_OBJECTS:xmpp> ${source_xmpp}
$<TARGET_OBJECTS:src_utils> ${source_src_utils}
$<TARGET_OBJECTS:bridge> ${source_bridge}
$<TARGET_OBJECTS:irc> ${source_irc}
$<TARGET_OBJECTS:identd> ${source_identd}
$<$<BOOL:${USE_DATABASE}>:$<TARGET_OBJECTS:database>>) ${source_database})
target_link_libraries(${PROJECT_NAME} target_link_libraries(${PROJECT_NAME}
${EXPAT_LIBRARIES} ${EXPAT_LIBRARIES}
+6 -6
View File
@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 2.6) cmake_minimum_required(VERSION 3.0)
set(${PROJECT_NAME}_VERSION_MAJOR 1) set(${PROJECT_NAME}_VERSION_MAJOR 1)
set(${PROJECT_NAME}_VERSION_MINOR 0) set(${PROJECT_NAME}_VERSION_MINOR 0)
@@ -102,35 +102,35 @@ endif()
# #
file(GLOB source_utils file(GLOB source_utils
utils/*.[hc]pp) utils/*.[hc]pp)
add_library(utils OBJECT ${source_utils}) set(source_utils ${source_utils} PARENT_SCOPE)
# #
## config ## config
# #
file(GLOB source_config file(GLOB source_config
config/*.[hc]pp) config/*.[hc]pp)
add_library(config OBJECT ${source_config}) set(source_config ${source_config} PARENT_SCOPE)
# #
## logger ## logger
# #
file(GLOB source_logger file(GLOB source_logger
logger/*.[hc]pp) logger/*.[hc]pp)
add_library(logger OBJECT ${source_logger}) set(source_logger ${source_logger} PARENT_SCOPE)
# #
## network ## network
# #
file(GLOB source_network file(GLOB source_network
network/*.[hc]pp) network/*.[hc]pp)
add_library(network OBJECT ${source_network}) set(source_network ${source_network} PARENT_SCOPE)
# #
## xmpplib ## xmpplib
# #
file(GLOB source_xmpplib file(GLOB source_xmpplib
xmpp/*.[hc]pp) xmpp/*.[hc]pp)
add_library(xmpplib OBJECT ${source_xmpplib}) set(source_xmpplib ${source_xmpplib} PARENT_SCOPE)
# Define a __FILENAME__ macro with the relative path (from the base project directory) # Define a __FILENAME__ macro with the relative path (from the base project directory)
# of each source file # of each source file