Przeglądaj źródła

fix: allow CMake to decide the JVALIDATE_USE macros

Sam Jaffe 2 tygodni temu
rodzic
commit
bfaa0f2924
2 zmienionych plików z 9 dodań i 3 usunięć
  1. 4 2
      include/jvalidate/_config.h
  2. 5 1
      tests/CMakeLists.txt

+ 4 - 2
include/jvalidate/_config.h

@@ -1,12 +1,14 @@
 #pragma once
 
-#if __has_include(<unicode/std_string.h>)
+#if !defined(JVALIDATE_HAS_ICU)
+#elif __has_include(<unicode/std_string.h>)
 #define JVALIDATE_HAS_ICU 1
 #else
 #define JVALIDATE_HAS_ICU 0
 #endif
 
-#if __has_include(<ada/idna/to_unicode.h>)
+#if !defined(JVALIDATE_HAS_IDNA)
+#elif __has_include(<ada/idna/to_unicode.h>)
 #define JVALIDATE_HAS_IDNA 1
 #else
 #define JVALIDATE_HAS_IDNA 0

+ 5 - 1
tests/CMakeLists.txt

@@ -56,21 +56,25 @@ set(SelfValidateTest_Unsupported_Suites "")
 set(SelfValidateTest_Unsupported_Cases "*leap second")
 
 if (ICU_FOUND)
+  target_compile_definitions(selfvalidate_test PUBLIC JVALIDATE_HAS_ICU=1)
   target_link_libraries(annotation_test ICU::uc ICU::i18n)
   target_link_libraries(extension_test ICU::uc ICU::i18n)
   target_link_libraries(selfvalidate_test ICU::uc ICU::i18n)
 else()
+  target_compile_definitions(selfvalidate_test PUBLIC JVALIDATE_HAS_ICU=0)
   string(
     APPEND SelfValidateTest_Unsupported
     ":*optional_non_bmp_regex"
   )
 endif()
 
-if (IDNA_POPULATED)
+if (idna_POPULATED)
+  target_compile_definitions(selfvalidate_test PUBLIC JVALIDATE_HAS_IDNA=1)
   target_link_libraries(annotation_test ada-idna)
   target_link_libraries(extension_test ada-idna)
   target_link_libraries(selfvalidate_test ada-idna)
 else()
+  target_compile_definitions(selfvalidate_test PUBLIC JVALIDATE_HAS_IDNA=0)
   string(
     APPEND SelfValidateTest_Unsupported
     ":*optional_*iri*"