71 lines
2.2 KiB
CMake
71 lines
2.2 KiB
CMake
if (DEFINED _FINDUTF8CPP_INCLUDED)
|
|
unset(utf8cpp_FOUND CACHE)
|
|
unset(utf8cpp_DIR CACHE)
|
|
unset(utf8cpp_INCLUDE_DIR CACHE)
|
|
unset(utf8cpp_LIBRARIES CACHE)
|
|
unset(utf8cpp_VERSION CACHE)
|
|
return()
|
|
endif()
|
|
set(_FINDUTF8CPP_INCLUDED TRUE)
|
|
|
|
find_package(utf8cpp QUIET)
|
|
|
|
if (NOT utf8cpp_FOUND)
|
|
message(STATUS "utf8cpp not found. Fetching via FetchContent...")
|
|
|
|
include(FetchContent)
|
|
|
|
find_program(GIT_EXECUTABLE git)
|
|
if (GIT_EXECUTABLE)
|
|
set(UTF8CPP_FETCH_METHOD "GIT")
|
|
else()
|
|
set(UTF8CPP_FETCH_METHOD "ZIP")
|
|
endif()
|
|
|
|
if (UTF8CPP_FETCH_METHOD STREQUAL "GIT")
|
|
FetchContent_Declare(
|
|
utf8cpp
|
|
GIT_REPOSITORY https://github.com/nemtrif/utfcpp.git
|
|
GIT_TAG v4.0.6
|
|
)
|
|
else()
|
|
FetchContent_Declare(
|
|
utf8cpp
|
|
URL https://github.com/nemtrif/utfcpp/archive/refs/tags/v4.0.6.zip
|
|
)
|
|
endif()
|
|
|
|
FetchContent_MakeAvailable(utf8cpp)
|
|
else()
|
|
message(STATUS "utf8cpp found.")
|
|
|
|
# Ensure we have a usable target
|
|
if (NOT TARGET utf8cpp::utf8cpp)
|
|
if (TARGET utf8cpp)
|
|
add_library(utf8cpp::utf8cpp ALIAS utf8cpp)
|
|
else()
|
|
message(FATAL_ERROR "utf8cpp was found, but no CMake target 'utf8cpp' or 'utf8cpp::utf8cpp' exists.")
|
|
endif()
|
|
endif()
|
|
|
|
# Populate the standard variables
|
|
set(utf8cpp_FOUND TRUE)
|
|
set(utf8cpp_LIBRARIES utf8cpp::utf8cpp)
|
|
get_target_property(_utf8cpp_inc utf8cpp::utf8cpp INTERFACE_INCLUDE_DIRECTORIES)
|
|
set(utf8cpp_INCLUDE_DIR "${_utf8cpp_inc}")
|
|
endif()
|
|
|
|
if (NOT TARGET utf8cpp::utf8cpp)
|
|
if (TARGET utf8cpp)
|
|
add_library(utf8cpp::utf8cpp ALIAS utf8cpp)
|
|
else()
|
|
message(FATAL_ERROR "Could not find or fetch utf8cpp; no target utf8cpp or utf8cpp::utf8cpp available")
|
|
endif()
|
|
endif()
|
|
|
|
set(utf8cpp_FOUND TRUE)
|
|
set(utf8cpp_LIBRARIES utf8cpp::utf8cpp)
|
|
set(utf8cpp_VERSION "${utf8cpp_VERSION}") # this comes from the utf8cpp project
|
|
get_target_property(_utf8cpp_inc utf8cpp::utf8cpp INTERFACE_INCLUDE_DIRECTORIES)
|
|
set(utf8cpp_INCLUDE_DIR "${_utf8cpp_inc}")
|