Fix Linux so/static build issue.

Hardened linker do not like mixing shared and static libraries
(who where compiled without -fPIC), thus simply build against the
header only version if not shared library is available.
pull/2200/head
Sean Farrell 4 years ago
parent 9f87c566bd
commit 7d2b9f3f3e

1
.gitignore vendored

@ -81,3 +81,4 @@ cmake-build-*/
*.tcl
*.user
*.sln
/output

@ -11,17 +11,22 @@ endif()
# ---------------------------------------------------------------------------------------
# Example of using shared libraries
# ---------------------------------------------------------------------------------------
if(SPDLOG_BUILD_SHARED OR BUILD_SHARED_LIBS)
add_library(mylibrary SHARED mylibrary.cpp mylibrary.h)
target_link_libraries(mylibrary PRIVATE spdlog::spdlog)
target_compile_definitions(mylibrary PUBLIC SPDLOG_SHARED_LIB)
target_compile_definitions(mylibrary PUBLIC SPDLOG_COMPILED_LIB)
add_executable(library_example library_example.cpp)
target_link_libraries(library_example PRIVATE spdlog::spdlog mylibrary)
target_compile_definitions(library_example PUBLIC SPDLOG_SHARED_LIB)
target_compile_definitions(library_example PUBLIC SPDLOG_COMPILED_LIB)
else()
add_library(mylibrary SHARED mylibrary.cpp mylibrary.h)
target_link_libraries(mylibrary PRIVATE spdlog::spdlog_header_only)
if(SPDLOG_BUILD_SHARED OR BUILD_SHARED_LIBS)
target_compile_definitions(mylibrary PUBLIC SPDLOG_SHARED_LIB)
target_compile_definitions(library_example PUBLIC SPDLOG_SHARED_LIB)
add_executable(library_example library_example.cpp)
target_link_libraries(library_example PRIVATE spdlog::spdlog_header_only mylibrary)
endif()
# ---------------------------------------------------------------------------------------

Loading…
Cancel
Save