mirror of
https://github.com/Z3Prover/z3
synced 2025-04-06 01:24:08 +00:00
Don't append ${OpenMP_CXX_FLAGS} to Z3_DEPENDENT_LIBS. This is wrong
because this is passed to ``target_link_libraries()``. It just so happens that ``target_link_libraries()`` will interpret arguments starting with a dash as a flag to pass to the linker (i.e. in this case ``-fopenmp``). However in the case of MSVC that flag is ``/openmp`` which is the interpreted as a file path which will lead to a linker failure later because the linker can't find the file ``\openmp.obj``.
This commit is contained in:
parent
7ac9172600
commit
ca6c41e411
|
@ -77,6 +77,8 @@ set(Z3_COMPONENT_CXX_DEFINES "")
|
|||
set(Z3_COMPONENT_CXX_FLAGS "")
|
||||
set(Z3_COMPONENT_EXTRA_INCLUDE_DIRS "")
|
||||
set(Z3_DEPENDENT_LIBS "")
|
||||
set(Z3_DEPENDENT_EXTRA_CXX_LINK_FLAGS "")
|
||||
set(Z3_DEPENDENT_EXTRA_C_LINK_FLAGS "")
|
||||
|
||||
################################################################################
|
||||
# Build type
|
||||
|
@ -210,7 +212,10 @@ if (USE_OPENMP)
|
|||
endif()
|
||||
if (OPENMP_FOUND)
|
||||
list(APPEND Z3_COMPONENT_CXX_FLAGS ${OpenMP_CXX_FLAGS})
|
||||
list(APPEND Z3_DEPENDENT_LIBS ${OpenMP_CXX_FLAGS})
|
||||
# Targets linking against libz3 (or its individual components)
|
||||
# will need to add these flags
|
||||
list(APPEND Z3_DEPENDENT_EXTRA_CXX_LINK_FLAGS ${OpenMP_CXX_FLAGS})
|
||||
list(APPEND Z3_DEPENDENT_EXTRA_C_LINK_FLAGS ${OpenMP_C_FLAGS})
|
||||
unset(CMAKE_REQUIRED_FLAGS)
|
||||
message(STATUS "Using OpenMP")
|
||||
else()
|
||||
|
@ -285,6 +290,8 @@ message(STATUS "Z3_COMPONENT_CXX_DEFINES: ${Z3_COMPONENT_CXX_DEFINES}")
|
|||
message(STATUS "Z3_COMPONENT_CXX_FLAGS: ${Z3_COMPONENT_CXX_FLAGS}")
|
||||
message(STATUS "Z3_DEPENDENT_LIBS: ${Z3_DEPENDENT_LIBS}")
|
||||
message(STATUS "Z3_COMPONENT_EXTRA_INCLUDE_DIRS: ${Z3_COMPONENT_EXTRA_INCLUDE_DIRS}")
|
||||
message(STATUS "Z3_DEPENDENT_EXTRA_CXX_LINK_FLAGS: ${Z3_DEPENDENT_EXTRA_CXX_LINK_FLAGS}")
|
||||
message(STATUS "Z3_DEPENDENT_EXTRA_C_LINK_FLAGS: ${Z3_DEPENDENT_EXTRA_C_LINK_FLAGS}")
|
||||
|
||||
################################################################################
|
||||
# Z3 installation locations
|
||||
|
|
|
@ -2,3 +2,4 @@ add_executable(cpp_example EXCLUDE_FROM_ALL example.cpp)
|
|||
target_link_libraries(cpp_example PRIVATE libz3)
|
||||
target_include_directories(cpp_example PRIVATE "${CMAKE_SOURCE_DIR}/src/api")
|
||||
target_include_directories(cpp_example PRIVATE "${CMAKE_SOURCE_DIR}/src/api/c++")
|
||||
set_property(TARGET cpp_example APPEND PROPERTY LINK_FLAGS ${Z3_DEPENDENT_EXTRA_CXX_LINK_FLAGS})
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
add_executable(c_example EXCLUDE_FROM_ALL test_capi.c)
|
||||
target_link_libraries(c_example PRIVATE libz3)
|
||||
target_include_directories(c_example PRIVATE "${CMAKE_SOURCE_DIR}/src/api")
|
||||
set_property(TARGET c_example APPEND PROPERTY LINK_FLAGS ${Z3_DEPENDENT_EXTRA_C_LINK_FLAGS})
|
||||
|
|
|
@ -101,6 +101,7 @@ set_target_properties(libz3 PROPERTIES
|
|||
# Using INTERFACE means that targets that try link against libz3 will
|
||||
# automatically link against the libs in Z3_DEPENDENT_LIBS
|
||||
target_link_libraries(libz3 INTERFACE ${Z3_DEPENDENT_LIBS})
|
||||
|
||||
# Declare which header file are the public header files of libz3
|
||||
# these will automatically installed when the libz3 target is installed
|
||||
set (libz3_public_headers
|
||||
|
|
|
@ -41,6 +41,7 @@ target_compile_options(shell PRIVATE ${Z3_COMPONENT_CXX_FLAGS})
|
|||
target_include_directories(shell PRIVATE ${Z3_COMPONENT_EXTRA_INCLUDE_DIRS})
|
||||
target_link_libraries(shell PRIVATE ${Z3_DEPENDENT_LIBS})
|
||||
z3_add_component_dependencies_to_target(shell ${shell_expanded_deps})
|
||||
set_property(TARGET shell APPEND PROPERTY LINK_FLAGS ${Z3_DEPENDENT_EXTRA_CXX_LINK_FLAGS})
|
||||
install(TARGETS shell
|
||||
RUNTIME DESTINATION "${Z3_INSTALL_BIN_DIR}"
|
||||
)
|
||||
|
|
|
@ -122,4 +122,5 @@ target_compile_definitions(test-z3 PRIVATE ${Z3_COMPONENT_CXX_DEFINES})
|
|||
target_compile_options(test-z3 PRIVATE ${Z3_COMPONENT_CXX_FLAGS})
|
||||
target_link_libraries(test-z3 PRIVATE ${Z3_DEPENDENT_LIBS})
|
||||
target_include_directories(shell PRIVATE ${Z3_COMPONENT_EXTRA_INCLUDE_DIRS})
|
||||
set_property(TARGET test-z3 APPEND PROPERTY LINK_FLAGS ${Z3_DEPENDENT_EXTRA_CXX_LINK_FLAGS})
|
||||
z3_add_component_dependencies_to_target(test-z3 ${z3_test_expanded_deps})
|
||||
|
|
Loading…
Reference in a new issue