[circleci] Add an iOS bot (#1233)
This commit is contained in:
parent
0537a40193
commit
187df7d7a9
|
@ -27,6 +27,17 @@ jobs:
|
||||||
# Ignoring assembler complains, https://stackoverflow.com/a/39867021
|
# Ignoring assembler complains, https://stackoverflow.com/a/39867021
|
||||||
- run: make 2>&1 | grep -v -e '^/var/folders/*' -e '^[[:space:]]*\.section' -e '^[[:space:]]*\^[[:space:]]*~*'
|
- run: make 2>&1 | grep -v -e '^/var/folders/*' -e '^[[:space:]]*\.section' -e '^[[:space:]]*\^[[:space:]]*~*'
|
||||||
|
|
||||||
|
macos-notest-ios:
|
||||||
|
macos:
|
||||||
|
xcode: "10.0.0"
|
||||||
|
steps:
|
||||||
|
- checkout
|
||||||
|
- run: brew update-reset
|
||||||
|
- run: brew install cmake
|
||||||
|
# not needed to be a framework but we like to test that also
|
||||||
|
- run: cmake -DBUILD_FRAMEWORK=ON -H. -Bbuild -GXcode -DHB_IOS=ON
|
||||||
|
- run: cd build && xcodebuild -sdk iphoneos12.0 -configuration Release build -arch arm64
|
||||||
|
|
||||||
distcheck:
|
distcheck:
|
||||||
docker:
|
docker:
|
||||||
- image: ubuntu:17.10
|
- image: ubuntu:17.10
|
||||||
|
@ -274,6 +285,7 @@ workflows:
|
||||||
# macOS
|
# macOS
|
||||||
- macos-llvm-gcc-4.2
|
- macos-llvm-gcc-4.2
|
||||||
- macos-notest-apple-gcc-i686-4.2
|
- macos-notest-apple-gcc-i686-4.2
|
||||||
|
- macos-notest-ios
|
||||||
|
|
||||||
# both autotools and cmake
|
# both autotools and cmake
|
||||||
- distcheck
|
- distcheck
|
||||||
|
|
136
CMakeLists.txt
136
CMakeLists.txt
|
@ -82,6 +82,16 @@ if (HB_CHECK)
|
||||||
endif ()
|
endif ()
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
|
set (HB_DISABLE_SUBSET OFF)
|
||||||
|
set (HB_DISABLE_TESTS OFF)
|
||||||
|
option(HB_IOS "Apply iOS specific build flags" OFF)
|
||||||
|
if (HB_IOS)
|
||||||
|
# We should fix their issue and enable them
|
||||||
|
set (HB_DISABLE_SUBSET ON)
|
||||||
|
set (HB_DISABLE_TESTS ON)
|
||||||
|
set (HB_HAVE_CORETEXT OFF)
|
||||||
|
endif ()
|
||||||
|
|
||||||
include_directories(AFTER
|
include_directories(AFTER
|
||||||
${PROJECT_SOURCE_DIR}/src
|
${PROJECT_SOURCE_DIR}/src
|
||||||
${PROJECT_BINARY_DIR}/src
|
${PROJECT_BINARY_DIR}/src
|
||||||
|
@ -359,12 +369,32 @@ if (APPLE AND HB_HAVE_CORETEXT)
|
||||||
list(APPEND project_sources ${PROJECT_SOURCE_DIR}/src/hb-coretext.cc)
|
list(APPEND project_sources ${PROJECT_SOURCE_DIR}/src/hb-coretext.cc)
|
||||||
list(APPEND project_headers ${PROJECT_SOURCE_DIR}/src/hb-coretext.h)
|
list(APPEND project_headers ${PROJECT_SOURCE_DIR}/src/hb-coretext.h)
|
||||||
|
|
||||||
find_library(APPLICATION_SERVICES_FRAMEWORK ApplicationServices)
|
if (HB_IOS)
|
||||||
if (APPLICATION_SERVICES_FRAMEWORK)
|
find_library(COREFOUNDATION CoreFoundation)
|
||||||
list(APPEND THIRD_PARTY_LIBS ${APPLICATION_SERVICES_FRAMEWORK})
|
if (COREFOUNDATION)
|
||||||
endif (APPLICATION_SERVICES_FRAMEWORK)
|
list(APPEND THIRD_PARTY_LIBS ${COREFOUNDATION})
|
||||||
|
endif ()
|
||||||
|
mark_as_advanced(COREFOUNDATION)
|
||||||
|
|
||||||
mark_as_advanced(APPLICATION_SERVICES_FRAMEWORK)
|
find_library(CORETEXT CoreText)
|
||||||
|
if (CORETEXT)
|
||||||
|
list(APPEND THIRD_PARTY_LIBS ${CORETEXT})
|
||||||
|
endif ()
|
||||||
|
mark_as_advanced(CORETEXT)
|
||||||
|
|
||||||
|
find_library(COREGRAPHICS CoreGraphics)
|
||||||
|
if (COREGRAPHICS)
|
||||||
|
list(APPEND THIRD_PARTY_LIBS ${COREGRAPHICS})
|
||||||
|
endif ()
|
||||||
|
mark_as_advanced(COREGRAPHICS)
|
||||||
|
else ()
|
||||||
|
find_library(APPLICATION_SERVICES_FRAMEWORK ApplicationServices)
|
||||||
|
if (APPLICATION_SERVICES_FRAMEWORK)
|
||||||
|
list(APPEND THIRD_PARTY_LIBS ${APPLICATION_SERVICES_FRAMEWORK})
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
mark_as_advanced(APPLICATION_SERVICES_FRAMEWORK)
|
||||||
|
endif ()
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
if (WIN32 AND HB_HAVE_UNISCRIBE)
|
if (WIN32 AND HB_HAVE_UNISCRIBE)
|
||||||
|
@ -527,12 +557,14 @@ add_library(harfbuzz ${project_sources} ${project_extra_sources} ${project_heade
|
||||||
target_link_libraries(harfbuzz ${THIRD_PARTY_LIBS})
|
target_link_libraries(harfbuzz ${THIRD_PARTY_LIBS})
|
||||||
|
|
||||||
## Define harfbuzz-subset library
|
## Define harfbuzz-subset library
|
||||||
add_library(harfbuzz-subset ${subset_project_sources} ${subset_project_headers})
|
if (NOT HB_DISABLE_SUBSET)
|
||||||
add_dependencies(harfbuzz-subset harfbuzz)
|
add_library(harfbuzz-subset ${subset_project_sources} ${subset_project_headers})
|
||||||
target_link_libraries(harfbuzz-subset harfbuzz ${THIRD_PARTY_LIBS})
|
add_dependencies(harfbuzz-subset harfbuzz)
|
||||||
|
target_link_libraries(harfbuzz-subset harfbuzz ${THIRD_PARTY_LIBS})
|
||||||
|
|
||||||
if (BUILD_SHARED_LIBS)
|
if (BUILD_SHARED_LIBS)
|
||||||
set_target_properties(harfbuzz harfbuzz-subset PROPERTIES VISIBILITY_INLINES_HIDDEN TRUE)
|
set_target_properties(harfbuzz harfbuzz-subset PROPERTIES VISIBILITY_INLINES_HIDDEN TRUE)
|
||||||
|
endif ()
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
if (UNIX OR MINGW)
|
if (UNIX OR MINGW)
|
||||||
|
@ -549,7 +581,9 @@ if (UNIX OR MINGW)
|
||||||
set (CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "m") # libm
|
set (CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "m") # libm
|
||||||
set (CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "")
|
set (CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "")
|
||||||
set_target_properties(harfbuzz PROPERTIES LINKER_LANGUAGE C)
|
set_target_properties(harfbuzz PROPERTIES LINKER_LANGUAGE C)
|
||||||
set_target_properties(harfbuzz-subset PROPERTIES LINKER_LANGUAGE C)
|
if (NOT HB_DISABLE_SUBSET)
|
||||||
|
set_target_properties(harfbuzz-subset PROPERTIES LINKER_LANGUAGE C)
|
||||||
|
endif ()
|
||||||
|
|
||||||
# No threadsafe statics as we do it ourselves
|
# No threadsafe statics as we do it ourselves
|
||||||
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-threadsafe-statics")
|
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-threadsafe-statics")
|
||||||
|
@ -828,51 +862,53 @@ if (UNIX AND CMAKE_GENERATOR STREQUAL "Ninja")
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
|
|
||||||
## src/ executables
|
if (NOT HB_DISABLE_TESTS)
|
||||||
foreach (prog main test test-would-substitute test-size-params test-buffer-serialize hb-ot-tag test-unicode-ranges)
|
## src/ executables
|
||||||
set (prog_name ${prog})
|
foreach (prog main test test-would-substitute test-size-params test-buffer-serialize hb-ot-tag test-unicode-ranges)
|
||||||
if (${prog_name} STREQUAL "test")
|
set (prog_name ${prog})
|
||||||
# test can not be used as a valid executable name on cmake, lets special case it
|
if (${prog_name} STREQUAL "test")
|
||||||
set (prog_name test-test)
|
# test can not be used as a valid executable name on cmake, lets special case it
|
||||||
endif ()
|
set (prog_name test-test)
|
||||||
add_executable(${prog_name} ${PROJECT_SOURCE_DIR}/src/${prog}.cc)
|
endif ()
|
||||||
target_link_libraries(${prog_name} harfbuzz ${THIRD_PARTY_LIBS})
|
add_executable(${prog_name} ${PROJECT_SOURCE_DIR}/src/${prog}.cc)
|
||||||
endforeach ()
|
target_link_libraries(${prog_name} harfbuzz ${THIRD_PARTY_LIBS})
|
||||||
set_target_properties(hb-ot-tag PROPERTIES COMPILE_FLAGS "-DMAIN")
|
endforeach ()
|
||||||
|
set_target_properties(hb-ot-tag PROPERTIES COMPILE_FLAGS "-DMAIN")
|
||||||
|
|
||||||
## Tests
|
## Tests
|
||||||
if (UNIX OR MINGW)
|
if (UNIX OR MINGW)
|
||||||
if (BUILD_SHARED_LIBS)
|
if (BUILD_SHARED_LIBS)
|
||||||
# generate harfbuzz.def after build completion
|
# generate harfbuzz.def after build completion
|
||||||
add_custom_command(TARGET harfbuzz POST_BUILD
|
add_custom_command(TARGET harfbuzz POST_BUILD
|
||||||
COMMAND "${PYTHON_EXECUTABLE}" ${PROJECT_SOURCE_DIR}/src/gen-def.py ${PROJECT_BINARY_DIR}/harfbuzz.def ${project_headers}
|
COMMAND "${PYTHON_EXECUTABLE}" ${PROJECT_SOURCE_DIR}/src/gen-def.py ${PROJECT_BINARY_DIR}/harfbuzz.def ${project_headers}
|
||||||
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/src)
|
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/src)
|
||||||
|
|
||||||
add_test(NAME check-static-inits.sh
|
add_test(NAME check-static-inits.sh
|
||||||
COMMAND ${PROJECT_SOURCE_DIR}/src/check-static-inits.sh
|
COMMAND ${PROJECT_SOURCE_DIR}/src/check-static-inits.sh
|
||||||
WORKING_DIRECTORY ${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/harfbuzz.dir/src # ugly hack
|
WORKING_DIRECTORY ${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/harfbuzz.dir/src # ugly hack
|
||||||
)
|
)
|
||||||
add_test(NAME check-libstdc++.sh COMMAND ${PROJECT_SOURCE_DIR}/src/check-libstdc++.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-symbols.sh COMMAND ${PROJECT_SOURCE_DIR}/src/check-symbols.sh)
|
||||||
|
|
||||||
|
set_tests_properties(
|
||||||
|
check-static-inits.sh check-libstdc++.sh check-symbols.sh
|
||||||
|
PROPERTIES
|
||||||
|
ENVIRONMENT "libs=.;srcdir=${PROJECT_SOURCE_DIR}/src"
|
||||||
|
SKIP_RETURN_CODE 77)
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
add_test(NAME check-c-linkage-decls.sh COMMAND ./check-c-linkage-decls.sh)
|
||||||
|
add_test(NAME check-header-guards.sh COMMAND ./check-header-guards.sh)
|
||||||
|
add_test(NAME check-externs.sh COMMAND ./check-externs.sh)
|
||||||
|
add_test(NAME check-includes.sh COMMAND ./check-includes.sh)
|
||||||
set_tests_properties(
|
set_tests_properties(
|
||||||
check-static-inits.sh check-libstdc++.sh check-symbols.sh
|
check-c-linkage-decls.sh check-header-guards.sh check-externs.sh check-includes.sh
|
||||||
PROPERTIES
|
PROPERTIES
|
||||||
ENVIRONMENT "libs=.;srcdir=${PROJECT_SOURCE_DIR}/src"
|
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/src
|
||||||
SKIP_RETURN_CODE 77)
|
SKIP_RETURN_CODE 77)
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
add_test(NAME check-c-linkage-decls.sh COMMAND ./check-c-linkage-decls.sh)
|
# Needs to come last so that variables defined above are passed to
|
||||||
add_test(NAME check-header-guards.sh COMMAND ./check-header-guards.sh)
|
# subdirectories.
|
||||||
add_test(NAME check-externs.sh COMMAND ./check-externs.sh)
|
add_subdirectory(test)
|
||||||
add_test(NAME check-includes.sh COMMAND ./check-includes.sh)
|
|
||||||
set_tests_properties(
|
|
||||||
check-c-linkage-decls.sh check-header-guards.sh check-externs.sh check-includes.sh
|
|
||||||
PROPERTIES
|
|
||||||
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/src
|
|
||||||
SKIP_RETURN_CODE 77)
|
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
# Needs to come last so that variables defined above are passed to
|
|
||||||
# subdirectories.
|
|
||||||
add_subdirectory(test)
|
|
||||||
|
|
Loading…
Reference in New Issue