vcpkg/ports/unicorn-lib/CMakeLists.txt
JackBoosY 9d623319c6 [unicorn-lib]Fix build error. (#6534)
* [unicorn-lib]Fix build error.

* [unicorn-lib]Changed library linkage to static.

* [unicorn-lib]Use find_package instead of find_library to find zlib.

* [unicorn-lib]Fix the name of the PCRE2 library under debug/release and modify ZLIB link name.

* [unicorn-lib]Use select_library_configurations to select which pcre2 library should be linked.
2019-05-23 21:54:24 -07:00

41 lines
1.4 KiB
CMake

cmake_minimum_required(VERSION 3.10)
project(Unicorn_Lib LANGUAGES CXX DESCRIPTION "Unicode library for C++ by Ross Smith")
set(CMAKE_CXX_STANDARD 17)
option(UNICORN_LIB_SKIP_HEADERS "If the headers installation is skipped or not." OFF)
find_path(RS_CORE_LIB_INCLUDE_DIR rs-core/common.hpp)
#find_library(RW_UTILITIES_LIBRARY NAMES rw_utilities)
find_package(ZLIB REQUIRED)
find_library(PCRE2_LIBRARY_DEBUG NAMES pcre2-8d HINTS ${INSTALLED_LIB_PATH})
find_library(PCRE2_LIBRARY_RELEASE NAMES pcre2-8 HINTS ${INSTALLED_LIB_PATH})
select_library_configurations(PCRE2)
file(GLOB_RECURSE UNICORN_LIB_SOURCES ${PROJECT_SOURCE_DIR}/unicorn/*.cpp)
foreach(ITR ${UNICORN_LIB_SOURCES})
if(ITR MATCHES "(.*)-test.cpp(.*)")
list(REMOVE_ITEM UNICORN_LIB_SOURCES ${ITR})
endif()
endforeach()
add_library(unicorn-lib ${UNICORN_LIB_SOURCES})
target_include_directories(
unicorn-lib
PUBLIC ${PROJECT_SOURCE_DIR}
PUBLIC ${RS_CORE_LIB_INCLUDE_DIR}
)
target_compile_definitions(
unicorn-lib
PRIVATE -DUNICODE -D_UNICODE _CRT_SECURE_NO_WARNINGS
)
target_link_libraries(unicorn-lib PUBLIC ${PCRE2_LIBRARY})
target_link_libraries(unicorn-lib PUBLIC ZLIB::ZLIB)
if(NOT UNICORN_LIB_SKIP_HEADERS)
install(DIRECTORY ${PROJECT_SOURCE_DIR}/unicorn DESTINATION include FILES_MATCHING PATTERN "*.hpp")
endif()
install(TARGETS unicorn-lib
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
)