[circleci] Add an iOS bot (#1233)

This commit is contained in:
Ebrahim Byagowi 2018-10-10 17:12:52 +03:30 committed by GitHub
parent 0537a40193
commit 187df7d7a9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 98 additions and 50 deletions

View File

@ -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

View File

@ -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,13 +369,33 @@ 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)
if (HB_IOS)
find_library(COREFOUNDATION CoreFoundation)
if (COREFOUNDATION)
list(APPEND THIRD_PARTY_LIBS ${COREFOUNDATION})
endif ()
mark_as_advanced(COREFOUNDATION)
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) find_library(APPLICATION_SERVICES_FRAMEWORK ApplicationServices)
if (APPLICATION_SERVICES_FRAMEWORK) if (APPLICATION_SERVICES_FRAMEWORK)
list(APPEND THIRD_PARTY_LIBS ${APPLICATION_SERVICES_FRAMEWORK}) list(APPEND THIRD_PARTY_LIBS ${APPLICATION_SERVICES_FRAMEWORK})
endif (APPLICATION_SERVICES_FRAMEWORK) endif ()
mark_as_advanced(APPLICATION_SERVICES_FRAMEWORK) mark_as_advanced(APPLICATION_SERVICES_FRAMEWORK)
endif () endif ()
endif ()
if (WIN32 AND HB_HAVE_UNISCRIBE) if (WIN32 AND HB_HAVE_UNISCRIBE)
add_definitions(-DHAVE_UNISCRIBE) add_definitions(-DHAVE_UNISCRIBE)
@ -527,6 +557,7 @@ 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
if (NOT HB_DISABLE_SUBSET)
add_library(harfbuzz-subset ${subset_project_sources} ${subset_project_headers}) add_library(harfbuzz-subset ${subset_project_sources} ${subset_project_headers})
add_dependencies(harfbuzz-subset harfbuzz) add_dependencies(harfbuzz-subset harfbuzz)
target_link_libraries(harfbuzz-subset harfbuzz ${THIRD_PARTY_LIBS}) target_link_libraries(harfbuzz-subset harfbuzz ${THIRD_PARTY_LIBS})
@ -534,6 +565,7 @@ 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)
# Make symbols link locally # Make symbols link locally
@ -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)
if (NOT HB_DISABLE_SUBSET)
set_target_properties(harfbuzz-subset PROPERTIES LINKER_LANGUAGE C) 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,6 +862,7 @@ if (UNIX AND CMAKE_GENERATOR STREQUAL "Ninja")
endif () endif ()
if (NOT HB_DISABLE_TESTS)
## src/ executables ## src/ executables
foreach (prog main test test-would-substitute test-size-params test-buffer-serialize hb-ot-tag test-unicode-ranges) foreach (prog main test test-would-substitute test-size-params test-buffer-serialize hb-ot-tag test-unicode-ranges)
set (prog_name ${prog}) set (prog_name ${prog})
@ -876,3 +911,4 @@ endif ()
# Needs to come last so that variables defined above are passed to # Needs to come last so that variables defined above are passed to
# subdirectories. # subdirectories.
add_subdirectory(test) add_subdirectory(test)
endif ()