summaryrefslogtreecommitdiff
path: root/src/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'src/CMakeLists.txt')
-rw-r--r--src/CMakeLists.txt47
1 files changed, 36 insertions, 11 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 67347bbf4..4c418d928 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -1304,15 +1304,13 @@ set_source_files_properties(${LIBCVC5_GEN_SRCS} PROPERTIES GENERATED TRUE)
add_library(cvc5-obj OBJECT ${LIBCVC5_SRCS} ${LIBCVC5_GEN_SRCS})
target_compile_definitions(cvc5-obj PRIVATE -D__BUILDING_CVC5LIB)
set_target_properties(cvc5-obj PROPERTIES POSITION_INDEPENDENT_CODE ON)
-target_link_libraries(cvc5-obj PUBLIC $<TARGET_OBJECTS:cvc5base> $<TARGET_OBJECTS:cvc5context>)
# add_dependencies() is necessary for cmake versions before 3.21
add_dependencies(cvc5-obj cvc5base cvc5context)
# Add libcvc5 dependencies for generated sources.
add_dependencies(cvc5-obj gen-expr gen-versioninfo gen-options gen-tags gen-theory)
# Link the shared library
-add_library(cvc5-shared SHARED)
-target_link_libraries(cvc5-shared PRIVATE cvc5-obj)
+add_library(cvc5-shared SHARED $<TARGET_OBJECTS:cvc5-obj> $<TARGET_OBJECTS:cvc5base> $<TARGET_OBJECTS:cvc5context>)
set_target_properties(cvc5-shared PROPERTIES SOVERSION ${CVC5_SOVERSION})
set_target_properties(cvc5-shared PROPERTIES OUTPUT_NAME cvc5)
target_include_directories(cvc5-shared
@@ -1327,15 +1325,14 @@ install(TARGETS cvc5-shared
)
if(ENABLE_STATIC_LIBRARY)
- add_library(cvc5-static STATIC)
- target_link_libraries(cvc5-static PRIVATE cvc5-obj)
+ add_library(cvc5-static STATIC $<TARGET_OBJECTS:cvc5-obj> $<TARGET_OBJECTS:cvc5base> $<TARGET_OBJECTS:cvc5context>)
set_target_properties(cvc5-static PROPERTIES OUTPUT_NAME cvc5)
target_include_directories(cvc5-static
PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
$<INSTALL_INTERFACE:include>
)
- install(TARGETS cvc5-obj cvc5-static
+ install(TARGETS cvc5-static
EXPORT cvc5-targets
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
@@ -1345,6 +1342,7 @@ include(GenerateExportHeader)
generate_export_header(cvc5-obj BASE_NAME cvc5)
# Add library/include dependencies
+add_dependencies(cvc5-obj GMP_SHARED)
target_include_directories(cvc5-obj PRIVATE ${GMP_INCLUDE_DIR})
target_link_libraries(cvc5-shared PRIVATE GMP_SHARED)
if(ENABLE_STATIC_LIBRARY)
@@ -1359,9 +1357,15 @@ if(USE_ABC)
target_link_libraries(cvc5-obj PUBLIC ${ABC_LIBRARIES})
endif()
-target_link_libraries(cvc5-obj PUBLIC CaDiCaL)
+add_dependencies(cvc5-obj CaDiCaL)
+target_include_directories(cvc5-obj PRIVATE ${CaDiCaL_INCLUDE_DIR})
+target_link_libraries(cvc5-shared PRIVATE CaDiCaL)
+if(ENABLE_STATIC_LIBRARY)
+ target_link_libraries(cvc5-static PUBLIC CaDiCaL)
+endif()
if(USE_CLN)
+ add_dependencies(cvc5-obj CLN_SHARED)
target_include_directories(cvc5-obj PRIVATE ${CLN_INCLUDE_DIR})
target_link_libraries(cvc5-shared PRIVATE CLN_SHARED)
if(ENABLE_STATIC_LIBRARY)
@@ -1369,16 +1373,27 @@ if(USE_CLN)
endif()
endif()
if(USE_CRYPTOMINISAT)
- target_link_libraries(cvc5-obj PUBLIC CryptoMiniSat)
+ add_dependencies(cvc5-obj CryptoMiniSat)
+ target_include_directories(cvc5-obj PRIVATE ${CryptoMiniSat_INCLUDE_DIR})
+ target_link_libraries(cvc5-shared PRIVATE CryptoMiniSat)
+ if(ENABLE_STATIC_LIBRARY)
+ target_link_libraries(cvc5-static PUBLIC CryptoMiniSat)
+ endif()
endif()
if(USE_KISSAT)
- target_link_libraries(cvc5-obj PUBLIC Kissat)
+ add_dependencies(cvc5-obj Kissat)
+ target_include_directories(cvc5-obj PRIVATE ${Kissat_INCLUDE_DIR})
+ target_link_libraries(cvc5-shared PRIVATE Kissat)
+ if(ENABLE_STATIC_LIBRARY)
+ target_link_libraries(cvc5-static PUBLIC Kissat)
+ endif()
endif()
if(USE_GLPK)
target_link_libraries(cvc5-obj PUBLIC ${GLPK_LIBRARIES})
target_include_directories(cvc5-obj PUBLIC ${GLPK_INCLUDE_DIR})
endif()
if(USE_POLY)
+ add_dependencies(cvc5-obj Polyxx_SHARED)
target_include_directories(cvc5-obj PRIVATE ${Poly_INCLUDE_DIR})
target_link_libraries(cvc5-shared PRIVATE Polyxx_SHARED)
if(ENABLE_STATIC_LIBRARY)
@@ -1386,10 +1401,20 @@ if(USE_POLY)
endif()
endif()
if(USE_COCOA)
- target_link_libraries(cvc5-obj PUBLIC CoCoA)
+ add_dependencies(cvc5-obj CoCoA)
+ target_include_directories(cvc5-obj PRIVATE ${CoCoA_INCLUDE_DIR})
+ target_link_libraries(cvc5-shared PRIVATE CoCoA)
+ if(ENABLE_STATIC_LIBRARY)
+ target_link_libraries(cvc5-static PUBLIC CoCoA)
+ endif()
endif()
-target_link_libraries(cvc5-obj PUBLIC SymFPU)
+add_dependencies(cvc5-obj SymFPU)
+target_include_directories(cvc5-obj PRIVATE ${SymFPU_INCLUDE_DIR})
+target_link_libraries(cvc5-shared PRIVATE SymFPU)
+if(ENABLE_STATIC_LIBRARY)
+ target_link_libraries(cvc5-static PUBLIC SymFPU)
+endif()
#-----------------------------------------------------------------------------#
# Visit main subdirectory after creating target cvc5. For target main, we have
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback