Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-107695

Qt Widgets project built with Qt Creator fails to compile when targetting iOS Simulator

    XMLWordPrintable

Details

    • Bug
    • Resolution: Moved
    • P1: Critical
    • None
    • 6.4.0, 6.4.1, 6.5.0 FF
    • Build System: CMake
    • macOS 12.6 (21G115), Monterey, Qt 6.4.0 LGPL 3.0, Qt Creator 8.0.1, Xcode 14.0.1
    • iOS/tvOS/watchOS, macOS

    Description

      What do I want to do: create a widgets project with Qt Creator and run it on the IOS simulator.
      When I created the test project I selected CMAKE and I selected the Qt 6.4.0 for iOS, Qt 6.4.0 for iOS Simulator and Qt 6.4.0 for macOS kits.

      When I tried to compile this project targetting Qt 6.4.0 for iOS Simulator I got:

       

      Running /Users/qtusr/Qt/Tools/CMake/CMake.app/Contents/bin/cmake -S /Users/qtusr/Documents/development/Qt/TestIos3 -B /Users/qtusr/Documents/development/Qt/build-TestIos3-Qt_6_4_0_for_iOS -DCMAKE_GENERATOR:STRING=Xcode '-DCMAKE_PROJECT_INCLUDE_BEFORE:FILEPATH=/Users/qtusr/Qt/Qt Creator.app/Contents/Resources/package-manager/auto-setup.cmake' -DQT_QMAKE_EXECUTABLE:FILEPATH=/Users/qtusr/Qt/6.4.0/ios/bin/qmake -DCMAKE_PREFIX_PATH:PATH=/Users/qtusr/Qt/6.4.0/ios -DCMAKE_C_COMPILER:FILEPATH=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -DCMAKE_CXX_COMPILER:FILEPATH=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -DCMAKE_TOOLCHAIN_FILE:FILEPATH=/Users/qtusr/Qt/6.4.0/ios/lib/cmake/Qt6/qt.toolchain.cmake -DCMAKE_OSX_ARCHITECTURES:STRING=arm64 -DCMAKE_OSX_SYSROOT:STRING=iphoneos -DCMAKE_CXX_FLAGS_INIT:STRING=-DQT_QML_DEBUG -DCMAKE_XCODE_ATTRIBUTE_DEVELOPMENT_TEAM:STRING=M8R9WTV5V6 in /Users/qtusr/Documents/development/Qt/build-TestIos3-Qt_6_4_0_for_iOS.
      Running /Users/qtusr/Qt/Tools/CMake/CMake.app/Contents/bin/cmake -S /Users/qtusr/Documents/development/Qt/TestIos3 -B /Users/qtusr/Documents/development/Qt/build-TestIos3-Qt_6_4_0_for_iOS_Simulator -DCMAKE_GENERATOR:STRING=Xcode '-DCMAKE_PROJECT_INCLUDE_BEFORE:FILEPATH=/Users/qtusr/Qt/Qt Creator.app/Contents/Resources/package-manager/auto-setup.cmake' -DQT_QMAKE_EXECUTABLE:FILEPATH=/Users/qtusr/Qt/6.4.0/ios/bin/qmake -DCMAKE_PREFIX_PATH:PATH=/Users/qtusr/Qt/6.4.0/ios -DCMAKE_C_COMPILER:FILEPATH=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -DCMAKE_CXX_COMPILER:FILEPATH=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -DCMAKE_TOOLCHAIN_FILE:FILEPATH=/Users/qtusr/Qt/6.4.0/ios/lib/cmake/Qt6/qt.toolchain.cmake -DCMAKE_OSX_ARCHITECTURES:STRING=x86_64 -DCMAKE_OSX_SYSROOT:STRING=iphonesimulator -DCMAKE_CXX_FLAGS_INIT:STRING=-DQT_QML_DEBUG in /Users/qtusr/Documents/development/Qt/build-TestIos3-Qt_6_4_0_for_iOS_Simulator.
      -- The CXX compiler identification is unknown
      -- Detecting CXX compiler ABI info
      -- Detecting CXX compiler ABI info - done
      -- Check for working CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ - skipped
      -- Looking for C++ include pthread.h
      -- Looking for C++ include pthread.h - found
      -- Performing Test CMAKE_HAVE_LIBC_PTHREAD
      -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
      -- Found Threads: TRUE  
      -- Found ZLIB: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator16.0.sdk/usr/lib/libz.tbd (found version "1.2.11") 
      -- Found WrapSystemZLIB: TRUE  
      -- Using system ZLIB.
      -- Found WrapZLIB: TRUE  
      -- Performing Test HAVE_STDATOMIC
      -- Performing Test HAVE_STDATOMIC - Success
      -- Found WrapAtomic: TRUE  
      -- Looking for backtrace
      -- Looking for backtrace - found
      -- backtrace facility detected in default set of libraries
      -- Found Backtrace: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator16.0.sdk/usr/include  
      -- Using Qt bundled PCRE2.
      -- Found WrapPCRE2: TRUE  
      -- Performing Test HAVE_GETTIME
      -- Performing Test HAVE_GETTIME - Success
      -- Found WrapRt: TRUE  
      -- Performing Test HAVE_EGL
      -- Performing Test HAVE_EGL - Failed
      -- Could NOT find EGL (missing: EGL_INCLUDE_DIR HAVE_EGL EGL_LIBRARY) 
      -- Performing Test HAVE_GLESv2
      -- Performing Test HAVE_GLESv2 - Success
      -- Found GLESv2: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator16.0.sdk/System/Library/Frameworks/OpenGLES.framework  
      -- Using Qt bundled PNG.
      -- Found WrapPNG: TRUE  
      -- Using Qt bundled Harfbuzz.
      -- Found WrapHarfbuzz: TRUE  
      -- Using Qt bundled Freetype.
      -- Found WrapFreetype: TRUE  
      -- Using Qt bundled Jpeg.
      -- Found WrapJpeg: TRUE  
      -- Found AVFoundation: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator16.0.sdk/System/Library/Frameworks/AVFoundation.framework  
      -- Configuring done
      CMake Error in CMakeLists.txt:
        No known features for CXX compiler
      
        ""
      
        version .
      
      
      CMake Generate step failed.  Build files cannot be regenerated correctly.
      CMake process exited with exit code 1.
      
      Elapsed time: 00:27.
      

       

      This is from the error file:

      cd /Users/qtusr/Documents/development/Qt/build-TestIos3-Qt_6_4_0_for_iOS_Simulator/CMakeFiles/CMakeTmp
          /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -x c++ -target x86_64-apple-ios13.0-simulator -fmessage-length\=0 -fdiagnostics-show-note-include-stack -fmacro-backtrace-limit\=0 -Wno-trigraphs -fpascal-strings -O0 -Wno-missing-field-initializers -Wno-missing-prototypes -Wno-return-type -Wno-non-virtual-dtor -Wno-overloaded-virtual -Wno-exit-time-destructors -Wno-missing-braces -Wparentheses -Wswitch -Wno-unused-function -Wno-unused-label -Wno-unused-parameter -Wno-unused-variable -Wunused-value -Wno-empty-body -Wno-uninitialized -Wno-unknown-pragmas -Wno-shadow -Wno-four-char-constants -Wno-conversion -Wno-constant-conversion -Wno-int-conversion -Wno-bool-conversion -Wno-enum-conversion -Wno-float-conversion -Wno-non-literal-null-conversion -Wno-objc-literal-conversion -Wshorten-64-to-32 -Wno-newline-eof -Wno-c++11-extensions -Wno-implicit-fallthrough -DCMAKE_INTDIR\=\"Debug-iphonesimulator\" -DHAVE_EGL -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator16.0.sdk -fasm-blocks -fstrict-aliasing -Wdeprecated-declarations -Winvalid-offsetof -Wno-sign-conversion -Wno-infinite-recursion -Wno-move -Wno-comma -Wno-block-capture-autoreleasing -Wno-strict-prototypes -Wno-range-loop-analysis -Wno-semicolon-before-method-body -I/Users/qtusr/Documents/development/Qt/build-TestIos3-Qt_6_4_0_for_iOS_Simulator/CMakeFiles/CMakeTmp/Debug/include -I/Users/qtusr/Documents/development/Qt/build-TestIos3-Qt_6_4_0_for_iOS_Simulator/CMakeFiles/CMakeTmp/CMAKE_TRY_COMPILE.build/Debug-iphonesimulator/cmTC_704b0.build/DerivedSources-normal/x86_64 -I/Users/qtusr/Documents/development/Qt/build-TestIos3-Qt_6_4_0_for_iOS_Simulator/CMakeFiles/CMakeTmp/CMAKE_TRY_COMPILE.build/Debug-iphonesimulator/cmTC_704b0.build/DerivedSources/x86_64 -I/Users/qtusr/Documents/development/Qt/build-TestIos3-Qt_6_4_0_for_iOS_Simulator/CMakeFiles/CMakeTmp/CMAKE_TRY_COMPILE.build/Debug-iphonesimulator/cmTC_704b0.build/DerivedSources -F/Users/qtusr/Documents/development/Qt/build-TestIos3-Qt_6_4_0_for_iOS_Simulator/CMakeFiles/CMakeTmp/Debug -DQT_QML_DEBUG -MMD -MT dependencies -MF /Users/qtusr/Documents/development/Qt/build-TestIos3-Qt_6_4_0_for_iOS_Simulator/CMakeFiles/CMakeTmp/CMAKE_TRY_COMPILE.build/Debug-iphonesimulator/cmTC_704b0.build/Objects-normal/x86_64/src.d --serialize-diagnostics /Users/qtusr/Documents/development/Qt/build-TestIos3-Qt_6_4_0_for_iOS_Simulator/CMakeFiles/CMakeTmp/CMAKE_TRY_COMPILE.build/Debug-iphonesimulator/cmTC_704b0.build/Objects-normal/x86_64/src.dia -c /Users/qtusr/Documents/development/Qt/build-TestIos3-Qt_6_4_0_for_iOS_Simulator/CMakeFiles/CMakeTmp/src.cxx -o /Users/qtusr/Documents/development/Qt/build-TestIos3-Qt_6_4_0_for_iOS_Simulator/CMakeFiles/CMakeTmp/CMAKE_TRY_COMPILE.build/Debug-iphonesimulator/cmTC_704b0.build/Objects-normal/x86_64/src.o
      /Users/qtusr/Documents/development/Qt/build-TestIos3-Qt_6_4_0_for_iOS_Simulator/CMakeFiles/CMakeTmp/src.cxx:2:10: fatal error: 'EGL/egl.h' file not found
      #include <EGL/egl.h>
               ^~~~~~~~~~~
      1 error generated.
      
      WriteAuxiliaryFile /Users/qtusr/Documents/development/Qt/build-TestIos3-Qt_6_4_0_for_iOS_Simulator/CMakeFiles/CMakeTmp/CMAKE_TRY_COMPILE.build/Debug-iphonesimulator/cmTC_704b0.build/Objects-normal/x86_64/cmTC_704b0.LinkFileList (in target 'cmTC_704b0' from project 'CMAKE_TRY_COMPILE')
          cd /Users/qtusr/Documents/development/Qt/build-TestIos3-Qt_6_4_0_for_iOS_Simulator/CMakeFiles/CMakeTmp
          write-file /Users/qtusr/Documents/development/Qt/build-TestIos3-Qt_6_4_0_for_iOS_Simulator/CMakeFiles/CMakeTmp/CMAKE_TRY_COMPILE.build/Debug-iphonesimulator/cmTC_704b0.build/Objects-normal/x86_64/cmTC_704b0.LinkFileList
      
      ** BUILD FAILED **
      
      
      The following build commands failed:
      	CompileC /Users/qtusr/Documents/development/Qt/build-TestIos3-Qt_6_4_0_for_iOS_Simulator/CMakeFiles/CMakeTmp/CMAKE_TRY_COMPILE.build/Debug-iphonesimulator/cmTC_704b0.build/Objects-normal/x86_64/src.o /Users/qtusr/Documents/development/Qt/build-TestIos3-Qt_6_4_0_for_iOS_Simulator/CMakeFiles/CMakeTmp/src.cxx normal x86_64 c++ com.apple.compilers.llvm.clang.1_0.compiler (in target 'cmTC_704b0' from project 'CMAKE_TRY_COMPILE')
      (1 failure)
      
      
      Source file was:
      
      #include <EGL/egl.h>
      
      int main(int, char **) {
          EGLint x = 0; EGLDisplay dpy = 0; EGLContext ctx = 0;
          eglDestroyContext(dpy, ctx);
      }
      
      

      CMakeLists.txt:

       

      cmake_minimum_required(VERSION 3.5)
      
      project(TestIos3 VERSION 0.1 LANGUAGES CXX)
      
      set(CMAKE_INCLUDE_CURRENT_DIR ON)
      
      set(CMAKE_AUTOUIC ON)
      set(CMAKE_AUTOMOC ON)
      set(CMAKE_AUTORCC ON)
      
      set(CMAKE_CXX_STANDARD 17)
      set(CMAKE_CXX_STANDARD_REQUIRED ON)
      
      find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Widgets)
      find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Widgets)
      
      set(PROJECT_SOURCES
              main.cpp
              mainwindow.cpp
              mainwindow.h
              mainwindow.ui
      )
      
      if(${QT_VERSION_MAJOR} GREATER_EQUAL 6)
          qt_add_executable(TestIos3
              MANUAL_FINALIZATION
              ${PROJECT_SOURCES}
          )
      # Define target properties for Android with Qt 6 as:
      #    set_property(TARGET TestIos3 APPEND PROPERTY QT_ANDROID_PACKAGE_SOURCE_DIR
      #                 ${CMAKE_CURRENT_SOURCE_DIR}/android)
      # For more information, see https://doc.qt.io/qt-6/qt-add-executable.html#target-creation
      else()
          if(ANDROID)
              add_library(TestIos3 SHARED
                  ${PROJECT_SOURCES}
              )
      # Define properties for Android with Qt 5 after find_package() calls as:
      #    set(ANDROID_PACKAGE_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/android")
          else()
              add_executable(TestIos3
                  ${PROJECT_SOURCES}
              )
          endif()
      endif()
      
      target_link_libraries(TestIos3 PRIVATE Qt${QT_VERSION_MAJOR}::Widgets)
      
      set_target_properties(TestIos3 PROPERTIES
          MACOSX_BUNDLE_GUI_IDENTIFIER my.example.com
          MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION}
          MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}
          MACOSX_BUNDLE TRUE
          WIN32_EXECUTABLE TRUE
      )
      
      install(TARGETS TestIos3
          BUNDLE DESTINATION .
          LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
      
      if(QT_VERSION_MAJOR EQUAL 6)
          qt_finalize_executable(TestIos3)
      endif()
      
      

      Right off the bat I should say that when I created the same type of project but I selected qmake, the whole thing worked fine and I was able to run the app in the simulator. The project also works with CMAKE when I targeted MacOS.

      I tried to find more information about this error but none of the suggestions I found worked. Here is on post on SO, but I don't understand the answer. I tried different required versions of CMAKE but none of them worked.

      Any idea about what's going on? What can I do to get it working? Imo, this is a basic starting point, app created with Qt Creator, uses CMAKE, targets iOS simulator, and I cannot get past the compilation phase.

       

      Attachments

        Issue Links

          Activity

            People

              qtbuildsystem Qt Build System Team
              qtusr Bogdan Chiru
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: