Fix CMakeLists.txt to allow static libopenrct2

This allows using CMake-standard `BUILD_SHARED_LIBS` flag to dynamically
set how libopenrct2 should be built.

`cmake -DBUILD_SHARED_LIBS=OFF` will result in `openrct2` statically
linked with `libopenrct2`

Fixes #5918.
This commit is contained in:
Michał Janiszewski 2017-08-09 22:34:11 +02:00 committed by Michał Janiszewski
parent a5e9522336
commit d2ec1f0057
2 changed files with 13 additions and 4 deletions

View File

@ -138,12 +138,15 @@ IF (DOWNLOAD_TITLE_SEQUENCES)
install(CODE "file(REMOVE \$ENV{DESTDIR}${CMAKE_INSTALL_FULL_DATADIR}/${PROJECT}/title/title-sequences.zip)")
endif ()
if (WIN32)
install(TARGETS "libopenrct2" RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}")
install(TARGETS "libopenrct2" RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}")
else ()
if (PORTABLE)
install(TARGETS "libopenrct2" LIBRARY DESTINATION "${CMAKE_INSTALL_BINDIR}")
install(TARGETS "libopenrct2" LIBRARY DESTINATION "${CMAKE_INSTALL_BINDIR}"
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}")
else ()
install(TARGETS "libopenrct2" LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}")
install(TARGETS "libopenrct2" LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}")
endif ()
endif ()
install(TARGETS "openrct2" RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}")

View File

@ -128,7 +128,7 @@ endif ()
# Outputs
set(PROJECT libopenrct2)
project(${PROJECT})
add_library(${PROJECT} SHARED ${OPENRCT2_CORE_SOURCES} ${OPENRCT2_CORE_MM_SOURCES} ${RCT2_SECTIONS})
add_library(${PROJECT} ${OPENRCT2_CORE_SOURCES} ${OPENRCT2_CORE_MM_SOURCES} ${RCT2_SECTIONS})
set_target_properties(${PROJECT} PROPERTIES PREFIX "")
set_target_properties(${PROJECT} PROPERTIES COMPILE_FLAGS "-Wundef")
@ -164,6 +164,12 @@ if (NOT DISABLE_NETWORK)
if (WIN32)
target_link_libraries(${PROJECT} ws2_32)
endif ()
# our HTTP implementation requires use of threads
set(THREADS_PREFER_PTHREAD_FLAG ON)
find_package(Threads REQUIRED)
target_link_libraries(${PROJECT} Threads::Threads)
if (STATIC)
target_link_libraries(${PROJECT} ${LIBCURL_STATIC_LIBRARIES}
${SSL_STATIC_LIBRARIES})