diff --git a/CMakeLists.txt b/CMakeLists.txt index e787ac8..b8041ce 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -192,7 +192,7 @@ install(FILES Athena.ico DESTINATION ${INSTALL_LIB_DIR} COMPONENT athena) elseif(UNIX) configure_file(libAthena.pc.in libAthena.pc @ONLY) configure_file(PKGBUILD.in ${CMAKE_CURRENT_SOURCE_DIR}/PKGBUILD @ONLY) -install(FILES ${PROJECT_BINARY_DIR}/libAthena.pc +install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libAthena.pc DESTINATION ${INSTALL_LIB_DIR}/pkgconfig COMPONENT athena) endif() @@ -201,7 +201,7 @@ endif() ################## # Add all targets to the build-tree export set -export(TARGETS athena-core FILE "${PROJECT_BINARY_DIR}/AthenaTargets.cmake") +export(TARGETS athena-core FILE "${CMAKE_CURRENT_BINARY_DIR}/AthenaTargets.cmake") # Export the package for use from the build-tree # (this registers the build-tree with a global CMake-registry) @@ -211,20 +211,20 @@ export(PACKAGE athena) # ... for the build tree set(CONF_INCLUDE_DIR "${PROJECT_SOURCE_DIR}/include/athena") set(CONF_ICON_DIR "${PROJECT_SOURCE_DIR}/Athena.ico") -configure_file(AthenaConfig.cmake.in "${PROJECT_BINARY_DIR}/AthenaConfig.cmake" @ONLY) +configure_file(AthenaConfig.cmake.in "${CMAKE_CURRENT_BINARY_DIR}/AthenaConfig.cmake" @ONLY) # ... for the install tree file(RELATIVE_PATH REL_INCLUDE_DIR "${ABS_INSTALL_CMAKE_DIR}" "${ABS_INSTALL_INCLUDE_DIR}") file(RELATIVE_PATH REL_ICON_DIR "${ABS_INSTALL_CMAKE_DIR}" "${ABS_INSTALL_LIB_DIR}/Athena.ico") set(CONF_INCLUDE_DIR "\${ATHENA_CMAKE_DIR}/${REL_INCLUDE_DIR}/athena") set(CONF_ICON_DIR "\${ATHENA_CMAKE_DIR}/${REL_ICON_DIR}") -configure_file(AthenaConfig.cmake.in "${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/AthenaConfig.cmake" @ONLY) +configure_file(AthenaConfig.cmake.in "${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/AthenaConfig.cmake" @ONLY) # ... for both -configure_file(AthenaConfigVersion.cmake.in "${PROJECT_BINARY_DIR}/AthenaConfigVersion.cmake" @ONLY) +configure_file(AthenaConfigVersion.cmake.in "${CMAKE_CURRENT_BINARY_DIR}/AthenaConfigVersion.cmake" @ONLY) # Install AthenaConfig.cmake install(FILES - "${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/AthenaConfig.cmake" - "${PROJECT_BINARY_DIR}/AthenaConfigVersion.cmake" + "${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/AthenaConfig.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/AthenaConfigVersion.cmake" DESTINATION ${INSTALL_CMAKE_DIR} COMPONENT athena) # Install the export set for use with the install-tree diff --git a/atdna/CMakeLists.txt b/atdna/CMakeLists.txt index 2f39f11..72c8f56 100644 --- a/atdna/CMakeLists.txt +++ b/atdna/CMakeLists.txt @@ -2,6 +2,8 @@ # ATDNA Build # ############### +if(NOT CMAKE_CROSSCOMPILING) + # Force this binary to Release flags (to make MSVC happy) if(MSVC) set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_RELEASE}") @@ -113,7 +115,7 @@ install(DIRECTORY ${CLANG_INCLUDE_DIR}/ DESTINATION ${INSTALL_INCLUDE_DIR}/athen ################## # Add all targets to the build-tree export set -export(TARGETS atdna FILE "${PROJECT_BINARY_DIR}/atdnaTargets.cmake") +export(TARGETS atdna FILE "${CMAKE_CURRENT_BINARY_DIR}/atdnaTargets.cmake") # Export the package for use from the build-tree # (this registers the build-tree with a global CMake-registry) @@ -122,17 +124,17 @@ export(PACKAGE atdna) # Create the atdnaConfig.cmake # ... for the build tree set(CONF_CLANG_INCLUDE_DIR "${CLANG_INCLUDE_DIR}") -configure_file(atdnaConfig.cmake.in "${PROJECT_BINARY_DIR}/atdnaConfig.cmake" @ONLY) +configure_file(atdnaConfig.cmake.in "${CMAKE_CURRENT_BINARY_DIR}/atdnaConfig.cmake" @ONLY) # ... for the install tree set(CONF_CLANG_INCLUDE_DIR "\${ATHENA_INCLUDE_DIR}/clang") -configure_file(atdnaConfig.cmake.in "${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/atdnaConfig.cmake" @ONLY) +configure_file(atdnaConfig.cmake.in "${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/atdnaConfig.cmake" @ONLY) # ... for both -configure_file(atdnaConfigVersion.cmake.in "${PROJECT_BINARY_DIR}/atdnaConfigVersion.cmake" @ONLY) +configure_file(atdnaConfigVersion.cmake.in "${CMAKE_CURRENT_BINARY_DIR}/atdnaConfigVersion.cmake" @ONLY) # Install atdnaConfig.cmake install(FILES - "${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/atdnaConfig.cmake" - "${PROJECT_BINARY_DIR}/atdnaConfigVersion.cmake" + "${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/atdnaConfig.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/atdnaConfigVersion.cmake" DESTINATION ${INSTALL_CMAKE_DIR} COMPONENT atdna) # Install the export set for use with the install-tree @@ -228,3 +230,5 @@ macro(atdna out) COMMENT "Generating DNA ${out_rel}") endif() endmacro() + +endif() diff --git a/atdna/atdnaConfig.cmake.in b/atdna/atdnaConfig.cmake.in index 19fbebb..537fa0f 100644 --- a/atdna/atdnaConfig.cmake.in +++ b/atdna/atdnaConfig.cmake.in @@ -1,16 +1,13 @@ # - Config file for the atdna package # Compute paths -get_filename_component(ATHENA_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) +get_filename_component(ATDNA_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) # Our library dependencies (contains definitions for IMPORTED targets) if(NOT TARGET atdna AND NOT atdna_BINARY_DIR) - include("${ATHENA_CMAKE_DIR}/atdnaTargets.cmake") + include("${ATDNA_CMAKE_DIR}/atdnaTargets.cmake") endif() -# Find Athena -find_package(Athena REQUIRED) - # Super handy macro for adding atdna target macro(atdna out) # Ninja wants invocations in root binary dir for DEPFILE application @@ -68,7 +65,7 @@ macro(atdna out) # Use Ninja's DEPFILE parser in cooperation with atdna add_custom_command(OUTPUT ${out} COMMAND $ ARGS ${extraargs} -o ${out_rel} -MD -MT ${out_rel} -MF ${out_rel}.d ${cdefcli} ${inccli} - "-I${ATHENA_INCLUDE_DIR}" -isystem "${CLANG_INCLUDE_DIR}" ${ins} + "-I${ATHENA_INCLUDE_DIR}" -isystem "@CONF_CLANG_INCLUDE_DIR@" ${ins} DEPENDS atdna ${ins} IMPLICIT_DEPENDS ${ins_impdeps} DEPFILE "${CMAKE_CURRENT_BINARY_DIR}/${out}.d" WORKING_DIRECTORY ${CMAKE_BINARY_DIR} @@ -77,7 +74,7 @@ macro(atdna out) # Use CMake's built-in dependency scanner for makefile targets add_custom_command(OUTPUT ${out} COMMAND $ ARGS ${extraargs} -o ${out_rel} ${cdefcli} ${inccli} - "-I${ATHENA_INCLUDE_DIR}" -isystem "${CLANG_INCLUDE_DIR}" ${ins} + "-I${ATHENA_INCLUDE_DIR}" -isystem "@CONF_CLANG_INCLUDE_DIR@" ${ins} DEPENDS atdna ${ins} IMPLICIT_DEPENDS ${ins_impdeps} WORKING_DIRECTORY ${CMAKE_BINARY_DIR} COMMENT "Generating DNA ${out_rel}") diff --git a/include/utf8proc.h b/include/utf8proc.h index 80c2e8d..29e1515 100644 --- a/include/utf8proc.h +++ b/include/utf8proc.h @@ -226,10 +226,16 @@ static inline utf8proc_ssize_t utf8proc_encode_char(utf8proc_int32_t uc, utf8pro #include #include -class UTF8Iterator : public std::iterator +class UTF8Iterator { std::string_view::const_iterator m_it; public: + using iterator_category = std::forward_iterator_tag; + using value_type = uint32_t; + using difference_type = std::ptrdiff_t; + using pointer = uint32_t*; + using reference = uint32_t&; + UTF8Iterator(const std::string_view::const_iterator& it) : m_it(it) {} UTF8Iterator& operator+=(size_t v) {