utfcpp/CMakeLists.txt
Nemanja Trifunovic 925e7147ec
Merge V4 branch into main (#110)
* Redefined and renamed types for code units.

* Remove -Wsign-conversion from test builds.

* find_invalid and is_valid that work with C-style strings.

* Lifted the C++11 requirement for some functions
 that take std::string as an argument.

* Support for C++20 u8string

Issue #89

* Update test docker image to 4.0.0

* Update Dockerfile to run tests with a recent gcc compiler.

* Make some internal helper functions non-template

* Add append16 function

Support for appending codepoints to existing utf16 encoded strings.

See #91

* next16

* Tests and documentation for next16

* Rewrite CMakeLists

Drop the existing CMake structure and write the new one from scratch. The root CMakeLists.txt is used for installing the package without building and running tests. Testing is done via a separate CMakeLists.txt in the tests directory.

* Remove "samples" directory.

The content of that file is already in the documentation.

* Update README.md

Restructure the reference, add installation instructions, toc, other minor changes
2023-10-21 18:16:40 -04:00

48 lines
1.6 KiB
CMake

cmake_minimum_required (VERSION 3.5...3.27)
project (utf8cpp
VERSION 4.0.0
LANGUAGES CXX
DESCRIPTION "C++ portable library for working with utf-8 encoding")
add_library(${PROJECT_NAME} INTERFACE)
include(GNUInstallDirs)
target_include_directories(utf8cpp INTERFACE
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/source>"
$<INSTALL_INTERFACE:include/utf8cpp>
)
include(CMakePackageConfigHelpers)
write_basic_package_version_file(
"${PROJECT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake"
VERSION ${PROJECT_VERSION}
COMPATIBILITY SameMajorVersion
)
install(TARGETS ${PROJECT_NAME}
EXPORT ${PROJECT_NAME}Targets
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
PUBLIC_HEADER DESTINATION include COMPONENT Development
BUNDLE DESTINATION bin COMPONENT Runtime
)
configure_package_config_file(
"${PROJECT_SOURCE_DIR}/${PROJECT_NAME}Config.cmake.in"
"${PROJECT_BINARY_DIR}/${PROJECT_NAME}Config.cmake"
INSTALL_DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/${PROJECT_NAME}/cmake
)
install(EXPORT ${PROJECT_NAME}Targets
FILE ${PROJECT_NAME}Targets.cmake
NAMESPACE ${PROJECT_NAME}::
DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/${PROJECT_NAME}/cmake)
install(FILES "${PROJECT_BINARY_DIR}/${PROJECT_NAME}Config.cmake"
"${PROJECT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake"
DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/${PROJECT_NAME}/cmake)
install(FILES ${PROJECT_SOURCE_DIR}/source/utf8.h DESTINATION include)
install(DIRECTORY ${PROJECT_SOURCE_DIR}/source/utf8 DESTINATION include)