Improve tests (#679)
diff --git a/CMakeLists.txt b/CMakeLists.txt index 4b713b6..ebbfbe3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt
@@ -61,6 +61,25 @@ set (HB_HAVE_GLIB ON) endif () +option(HB_CHECK OFF "Do a configuration suitable for testing (shared library and enable all options)") +if (HB_CHECK) + set (BUILD_SHARED_LIBS ON) + set (HB_BUILD_UTILS ON) + set (HB_BUILTIN_UCDN ON) + set (HB_HAVE_ICU) + set (HB_HAVE_GLIB ON) + #set (HB_HAVE_GOBJECT ON) + #set (HB_HAVE_INTROSPECTION ON) + set (HB_HAVE_FREETYPE ON) + set (HB_HAVE_GRAPHITE2 ON) + if (WIN32) + set (HB_HAVE_UNISCRIBE ON) + set (HB_HAVE_DIRECTWRITE ON) + elseif (APPLE) + set (HB_HAVE_CORETEXT ON) + endif () +endif () + include_directories(AFTER ${PROJECT_SOURCE_DIR}/src ${PROJECT_BINARY_DIR}/src @@ -71,6 +90,9 @@ if (BUILD_SHARED_LIBS) add_definitions(-DHAVE_ATEXIT) + if (APPLE) + set (CMAKE_MACOSX_RPATH ON) + endif () endif () if (MSVC) @@ -710,23 +732,31 @@ endif () endif () + ## Tests if (UNIX) if (BUILD_SHARED_LIBS) - add_test(NAME check-static-inits.sh - COMMAND ${PROJECT_SOURCE_DIR}/src/check-static-inits.sh - WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/CMakeFiles/harfbuzz.dir/src # hack - ) # does some "make" stuff inside - # add_test(NAME check-defs.sh COMMAND ${PROJECT_SOURCE_DIR}/src/check-defs.sh) - add_test(NAME check-libstdc++.sh COMMAND ${PROJECT_SOURCE_DIR}/src/check-libstdc++.sh) - add_test(NAME check-symbols.sh COMMAND ${PROJECT_SOURCE_DIR}/src/check-symbols.sh) + #add_test(NAME check-defs.sh COMMAND ${PROJECT_SOURCE_DIR}/src/check-defs.sh) + #set_tests_properties(check-defs.sh PROPERTIES ENVIRONMENT "libs=.") + + # broken on cmake builds right now :( + #add_test(NAME check-symbols.sh COMMAND ${PROJECT_SOURCE_DIR}/src/check-symbols.sh) + #add_test(NAME check-libstdc++.sh COMMAND ${PROJECT_SOURCE_DIR}/src/check-libstdc++.sh) + #set_tests_properties(check-symbols.sh check-libstdc++.sh PROPERTIES ENVIRONMENT "libs=.") + + if (NOT APPLE) + add_test(NAME check-static-inits.sh + COMMAND ${PROJECT_SOURCE_DIR}/src/check-static-inits.sh + WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/CMakeFiles/harfbuzz.dir/src # ugly hack + ) + set_tests_properties(check-static-inits.sh PROPERTIES ENVIRONMENT "libs=.") + endif () else () - message(WARN "You can enable BUILD_SHARED_LIBS for more tests.") + message(WARN "Enable BUILD_SHARED_LIBS for more tests.") endif () - # disabled as it doesn't work anyway - if (OFF AND IN_HB_DIST) + if (IN_HB_DIST) add_test(NAME check-c-linkage-decls.sh COMMAND ./check-c-linkage-decls.sh WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/src) add_test(NAME check-header-guards.sh COMMAND ./check-header-guards.sh WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/src) endif () @@ -737,4 +767,4 @@ # Needs to come last so that variables defined above are passed to # subdirectories. -add_subdirectory(test) +add_subdirectory(test) \ No newline at end of file