From bb674c0c3b4c141be0e399b4c76e3530066a6dfd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sa=C3=BAl=20Ibarra=20Corretg=C3=A9?= Date: Fri, 12 Apr 2024 12:24:18 +0200 Subject: [PATCH] Add iOS build to CI --- .github/workflows/ci.yml | 12 +++++++++++ CMakeLists.txt | 46 +++++++++++++++++++++------------------- 2 files changed, 36 insertions(+), 22 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1d014e4..2c52405 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -597,3 +597,15 @@ jobs: run: | $ANDROID_HOME/cmake/3.22.1/bin/cmake --build build --target qjs ls -lh build + + ios: + runs-on: macos-latest + steps: + - uses: actions/checkout@v4 + - name: configure + run: | + cmake -B build -GXcode -DCMAKE_SYSTEM_NAME:STRING=iOS -DCMAKE_XCODE_ATTRIBUTE_CODE_SIGNING_ALLOWED:BOOL=NO -DBUILD_QJS_LIBC=ON + - name: build + run: | + cmake --build build --config Release --target qjs + ls -lh build diff --git a/CMakeLists.txt b/CMakeLists.txt index 1eb5a2d..341178e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -27,7 +27,7 @@ macro(xcheck_add_c_compiler_flag FLAG) endmacro() xcheck_add_c_compiler_flag(-Wall) -if(NOT MSVC) +if(NOT MSVC AND NOT IOS) xcheck_add_c_compiler_flag(-Werror) xcheck_add_c_compiler_flag(-Wextra) endif() @@ -167,7 +167,7 @@ endif() add_library(qjs ${qjs_sources}) target_compile_definitions(qjs PRIVATE ${qjs_defines}) -if (CMAKE_BUILD_TYPE MATCHES Debug OR DUMP_LEAKS) +if(CMAKE_BUILD_TYPE MATCHES Debug OR DUMP_LEAKS) target_compile_definitions(qjs PRIVATE DUMP_LEAKS ) @@ -328,24 +328,26 @@ endif() # Install target # -file(STRINGS quickjs.h quickjs_h REGEX QJS_VERSION) -string(REGEX MATCHALL "([0-9])" QJS_VERSION "${quickjs_h}") -list(GET QJS_VERSION 0 QJS_VERSION_MAJOR) -list(GET QJS_VERSION 1 QJS_VERSION_MINOR) -list(GET QJS_VERSION 2 QJS_VERSION_PATCH) -set_target_properties(qjs PROPERTIES - VERSION ${QJS_VERSION_MAJOR}.${QJS_VERSION_MINOR}.${QJS_VERSION_PATCH} - SOVERSION ${QJS_VERSION_MAJOR} -) -install(FILES quickjs.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) -if(BUILD_QJS_LIBC) - install(FILES quickjs-libc.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) +if(NOT IOS) + file(STRINGS quickjs.h quickjs_h REGEX QJS_VERSION) + string(REGEX MATCHALL "([0-9])" QJS_VERSION "${quickjs_h}") + list(GET QJS_VERSION 0 QJS_VERSION_MAJOR) + list(GET QJS_VERSION 1 QJS_VERSION_MINOR) + list(GET QJS_VERSION 2 QJS_VERSION_PATCH) + set_target_properties(qjs PROPERTIES + VERSION ${QJS_VERSION_MAJOR}.${QJS_VERSION_MINOR}.${QJS_VERSION_PATCH} + SOVERSION ${QJS_VERSION_MAJOR} + ) + install(FILES quickjs.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) + if(BUILD_QJS_LIBC) + install(FILES quickjs-libc.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) + endif() + install(TARGETS qjs_exe RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) + install(TARGETS qjs EXPORT qjsConfig + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) + install(EXPORT qjsConfig DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/quickjs) + install(FILES LICENSE DESTINATION ${CMAKE_INSTALL_DOCDIR}) + install(DIRECTORY examples DESTINATION ${CMAKE_INSTALL_DOCDIR}) endif() -install(TARGETS qjs_exe RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) -install(TARGETS qjs EXPORT qjsConfig - RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) -install(EXPORT qjsConfig DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/quickjs) -install(FILES LICENSE DESTINATION ${CMAKE_INSTALL_DOCDIR}) -install(DIRECTORY examples DESTINATION ${CMAKE_INSTALL_DOCDIR})