leetal / ios-cmake

A CMake toolchain file for iOS/iPadOS, visionOS, macOS, watchOS & tvOS C/C++/Obj-C++ development
BSD 3-Clause "New" or "Revised" License
1.87k stars 447 forks source link

TVOS with Xcode generator error #30

Closed sy6sy2 closed 5 years ago

sy6sy2 commented 5 years ago

Hi,

Your example with the TVOS platform and the Xcode generator seems to produces an error :-/

Command to reproduce:

cd example/example-lib
mkdir build
cd build
cmake .. -G Xcode -DCMAKE_TOOLCHAIN_FILE=../../ios.toolchain.cmake -DIOS_PLATFORM=TVOS

Stdout:

-- Building with Xcode version: 10.2
-- Configuring iOS build for platform: TVOS, architecture(s): arm64
-- Using manually set SDK path: /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS12.2.sdk for platform: TVOS
-- Using the default min-version since IOS_DEPLOYMENT_TARGET not provided!
-- Enabling bitcode support by default. ENABLE_BITCODE not provided!
-- Enabling ARC support by default. ENABLE_ARC not provided!
-- Hiding symbols visibility by default. ENABLE_VISIBILITY not provided!
-- Using C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang
-- Using CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++
-- Using libtool: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/libtool
-- Using a data_ptr size of 8
-- Building for minimum iOS version: 8.0 (SDK version: 12.2)
-- Version flags set to: -mtvos-version-min=8.0
-- Enabling bitcode support.
-- Enabling ARC support.
-- Hiding symbols (-fvisibility=hidden).
CMake Warning (dev) at /Users/sylvain/Temp/ios-cmake/ios.toolchain.cmake:459 (set):
  implicitly converting 'string' to 'STRING' type.
Call Stack (most recent call first):
  /usr/local/Cellar/cmake/3.14.0/share/cmake/Modules/CMakeDetermineSystem.cmake:93 (include)
  CMakeLists.txt:2 (project)
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Building with Xcode version: 10.2
-- Configuring iOS build for platform: TVOS, architecture(s): arm64
-- Using manually set SDK path: /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS12.2.sdk for platform: TVOS
-- Using libtool: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/libtool
-- Using a data_ptr size of 8
-- Building for minimum iOS version: 8.0 (SDK version: 12.2)
-- Version flags set to: -mtvos-version-min=8.0
-- Enabling bitcode support.
-- Enabling ARC support.
-- Hiding symbols (-fvisibility=hidden).
CMake Warning (dev) at /Users/sylvain/Temp/ios-cmake/ios.toolchain.cmake:459 (set):
  implicitly converting 'string' to 'STRING' type.
Call Stack (most recent call first):
  build/CMakeFiles/3.14.0/CMakeSystem.cmake:6 (include)
  CMakeLists.txt:2 (project)
This warning is for project developers.  Use -Wno-dev to suppress it.

-- The C compiler identification is AppleClang 10.0.1.10010046
-- The CXX compiler identification is AppleClang 10.0.1.10010046
-- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang
CMake Warning (dev) at /Users/sylvain/Temp/ios-cmake/ios.toolchain.cmake:459 (set):
  implicitly converting 'string' to 'STRING' type.
Call Stack (most recent call first):
  /Users/sylvain/Temp/ios-cmake/example/example-lib/build/CMakeFiles/3.14.0/CMakeSystem.cmake:6 (include)
  /Users/sylvain/Temp/ios-cmake/example/example-lib/build/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -- works
-- Detecting C compiler ABI info
CMake Warning (dev) at /Users/sylvain/Temp/ios-cmake/ios.toolchain.cmake:459 (set):
  implicitly converting 'string' to 'STRING' type.
Call Stack (most recent call first):
  /Users/sylvain/Temp/ios-cmake/example/example-lib/build/CMakeFiles/3.14.0/CMakeSystem.cmake:6 (include)
  /Users/sylvain/Temp/ios-cmake/example/example-lib/build/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Detecting C compiler ABI info - done
-- Detecting C compile features
CMake Warning (dev) at /Users/sylvain/Temp/ios-cmake/ios.toolchain.cmake:459 (set):
  implicitly converting 'string' to 'STRING' type.
Call Stack (most recent call first):
  /Users/sylvain/Temp/ios-cmake/example/example-lib/build/CMakeFiles/3.14.0/CMakeSystem.cmake:6 (include)
  /Users/sylvain/Temp/ios-cmake/example/example-lib/build/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)
This warning is for project developers.  Use -Wno-dev to suppress it.

CMake Warning (dev) at /Users/sylvain/Temp/ios-cmake/ios.toolchain.cmake:459 (set):
  implicitly converting 'string' to 'STRING' type.
Call Stack (most recent call first):
  /Users/sylvain/Temp/ios-cmake/example/example-lib/build/CMakeFiles/3.14.0/CMakeSystem.cmake:6 (include)
  /Users/sylvain/Temp/ios-cmake/example/example-lib/build/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)
This warning is for project developers.  Use -Wno-dev to suppress it.

CMake Warning (dev) at /Users/sylvain/Temp/ios-cmake/ios.toolchain.cmake:459 (set):
  implicitly converting 'string' to 'STRING' type.
Call Stack (most recent call first):
  /Users/sylvain/Temp/ios-cmake/example/example-lib/build/CMakeFiles/3.14.0/CMakeSystem.cmake:6 (include)
  /Users/sylvain/Temp/ios-cmake/example/example-lib/build/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Detecting C compile features - done
-- Check for working CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++
CMake Warning (dev) at /Users/sylvain/Temp/ios-cmake/ios.toolchain.cmake:459 (set):
  implicitly converting 'string' to 'STRING' type.
Call Stack (most recent call first):
  /Users/sylvain/Temp/ios-cmake/example/example-lib/build/CMakeFiles/3.14.0/CMakeSystem.cmake:6 (include)
  /Users/sylvain/Temp/ios-cmake/example/example-lib/build/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Check for working CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -- broken
CMake Error at /usr/local/Cellar/cmake/3.14.0/share/cmake/Modules/CMakeTestCXXCompiler.cmake:53 (message):
  The C++ compiler

    "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++"

  is not able to compile a simple test program.

  It fails with the following output:

    Change Dir: /Users/sylvain/Temp/ios-cmake/example/example-lib/build/CMakeFiles/CMakeTmp

    Run Build Command(s):/usr/bin/xcodebuild -project CMAKE_TRY_COMPILE.xcodeproj build -target cmTC_2ddc4 -configuration Debug -hideShellScriptEnvironment
    User defaults from command line:
        HideShellScriptEnvironment = YES

    Prepare build
    note: Using legacy build system

    === BUILD TARGET cmTC_2ddc4 OF PROJECT CMAKE_TRY_COMPILE WITH CONFIGURATION Debug ===

    Check dependencies

    Write auxiliary files
    /bin/mkdir -p /Users/sylvain/Temp/ios-cmake/example/example-lib/build/CMakeFiles/CMakeTmp/CMAKE_TRY_COMPILE.build/Debug-appletvos/cmTC_2ddc4.build/Objects-normal/arm64
    write-file /Users/sylvain/Temp/ios-cmake/example/example-lib/build/CMakeFiles/CMakeTmp/CMAKE_TRY_COMPILE.build/Debug-appletvos/cmTC_2ddc4.build/Objects-normal/arm64/cmTC_2ddc4.LinkFileList

    CompileC CMAKE_TRY_COMPILE.build/Debug-appletvos/cmTC_2ddc4.build/Objects-normal/arm64/testCXXCompiler.o testCXXCompiler.cxx normal arm64 c++ com.apple.compilers.llvm.clang.1_0.compiler
        cd /Users/sylvain/Temp/ios-cmake/example/example-lib/build/CMakeFiles/CMakeTmp
        /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -x c++ -arch arm64 -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 -DCMAKE_INTDIR=\"Debug-appletvos\" -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS12.2.sdk -fstrict-aliasing -Wdeprecated-declarations -Winvalid-offsetof -mtvos-version-min=12.2 -g -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/sylvain/Temp/ios-cmake/example/example-lib/build/CMakeFiles/CMakeTmp/Debug/include -I/Users/sylvain/Temp/ios-cmake/example/example-lib/build/CMakeFiles/CMakeTmp/CMAKE_TRY_COMPILE.build/Debug-appletvos/cmTC_2ddc4.build/DerivedSources-normal/arm64 -I/Users/sylvain/Temp/ios-cmake/example/example-lib/build/CMakeFiles/CMakeTmp/CMAKE_TRY_COMPILE.build/Debug-appletvos/cmTC_2ddc4.build/DerivedSources/arm64 -I/Users/sylvain/Temp/ios-cmake/example/example-lib/build/CMakeFiles/CMakeTmp/CMAKE_TRY_COMPILE.build/Debug-appletvos/cmTC_2ddc4.build/DerivedSources -Wmost -Wno-four-char-constants -Wno-unknown-pragmas -F/Users/sylvain/Temp/ios-cmake/example/example-lib/build/CMakeFiles/CMakeTmp/Debug -mtvos-version-min=8.0 -fembed-bitcode -fvisibility=hidden -fvisibility-inlines-hidden -fobjc-abi-version=2 -fobjc-arc -mtvos-version-min=8.0 -fembed-bitcode -fvisibility=hidden -fvisibility-inlines-hidden -fobjc-abi-version=2 -fobjc-arc -miphoneos-version-min=8.0 -fembed-bitcode -fvisibility=hidden -fvisibility-inlines-hidden -fobjc-abi-version=2 -fobjc-arc -fembed-bitcode -MMD -MT dependencies -MF /Users/sylvain/Temp/ios-cmake/example/example-lib/build/CMakeFiles/CMakeTmp/CMAKE_TRY_COMPILE.build/Debug-appletvos/cmTC_2ddc4.build/Objects-normal/arm64/testCXXCompiler.d --serialize-diagnostics /Users/sylvain/Temp/ios-cmake/example/example-lib/build/CMakeFiles/CMakeTmp/CMAKE_TRY_COMPILE.build/Debug-appletvos/cmTC_2ddc4.build/Objects-normal/arm64/testCXXCompiler.dia -c /Users/sylvain/Temp/ios-cmake/example/example-lib/build/CMakeFiles/CMakeTmp/testCXXCompiler.cxx -o /Users/sylvain/Temp/ios-cmake/example/example-lib/build/CMakeFiles/CMakeTmp/CMAKE_TRY_COMPILE.build/Debug-appletvos/cmTC_2ddc4.build/Objects-normal/arm64/testCXXCompiler.o
    clang: error: invalid argument '-miphoneos-version-min=8.0' not allowed with '-mtvos-version-min=8.0'
    clang: warning: using sysroot for 'AppleTVOS' but targeting 'iPhone' [-Wincompatible-sysroot]

    ** BUILD FAILED **

    The following build commands failed:
        CompileC CMAKE_TRY_COMPILE.build/Debug-appletvos/cmTC_2ddc4.build/Objects-normal/arm64/testCXXCompiler.o testCXXCompiler.cxx normal arm64 c++ com.apple.compilers.llvm.clang.1_0.compiler
    (1 failure)

  CMake will not be able to correctly generate this project.
Call Stack (most recent call first):
  CMakeLists.txt:2 (project)

-- Configuring incomplete, errors occurred!
See also "/Users/sylvain/Temp/ios-cmake/example/example-lib/build/CMakeFiles/CMakeOutput.log".
See also "/Users/sylvain/Temp/ios-cmake/example/example-lib/build/CMakeFiles/CMakeError.log".

CMakeError.log:

Determining if the CXX compiler works failed with the following output:
Change Dir: /Users/sylvain/Temp/ios-cmake/example/example-lib/build/CMakeFiles/CMakeTmp

Run Build Command(s):/usr/bin/xcodebuild -project CMAKE_TRY_COMPILE.xcodeproj build -target cmTC_2ddc4 -configuration Debug -hideShellScriptEnvironment
User defaults from command line:
    HideShellScriptEnvironment = YES

Prepare build
note: Using legacy build system

=== BUILD TARGET cmTC_2ddc4 OF PROJECT CMAKE_TRY_COMPILE WITH CONFIGURATION Debug ===

Check dependencies

Write auxiliary files
/bin/mkdir -p /Users/sylvain/Temp/ios-cmake/example/example-lib/build/CMakeFiles/CMakeTmp/CMAKE_TRY_COMPILE.build/Debug-appletvos/cmTC_2ddc4.build/Objects-normal/arm64
write-file /Users/sylvain/Temp/ios-cmake/example/example-lib/build/CMakeFiles/CMakeTmp/CMAKE_TRY_COMPILE.build/Debug-appletvos/cmTC_2ddc4.build/Objects-normal/arm64/cmTC_2ddc4.LinkFileList

CompileC CMAKE_TRY_COMPILE.build/Debug-appletvos/cmTC_2ddc4.build/Objects-normal/arm64/testCXXCompiler.o testCXXCompiler.cxx normal arm64 c++ com.apple.compilers.llvm.clang.1_0.compiler
    cd /Users/sylvain/Temp/ios-cmake/example/example-lib/build/CMakeFiles/CMakeTmp
    /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -x c++ -arch arm64 -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 -DCMAKE_INTDIR=\"Debug-appletvos\" -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS12.2.sdk -fstrict-aliasing -Wdeprecated-declarations -Winvalid-offsetof -mtvos-version-min=12.2 -g -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/sylvain/Temp/ios-cmake/example/example-lib/build/CMakeFiles/CMakeTmp/Debug/include -I/Users/sylvain/Temp/ios-cmake/example/example-lib/build/CMakeFiles/CMakeTmp/CMAKE_TRY_COMPILE.build/Debug-appletvos/cmTC_2ddc4.build/DerivedSources-normal/arm64 -I/Users/sylvain/Temp/ios-cmake/example/example-lib/build/CMakeFiles/CMakeTmp/CMAKE_TRY_COMPILE.build/Debug-appletvos/cmTC_2ddc4.build/DerivedSources/arm64 -I/Users/sylvain/Temp/ios-cmake/example/example-lib/build/CMakeFiles/CMakeTmp/CMAKE_TRY_COMPILE.build/Debug-appletvos/cmTC_2ddc4.build/DerivedSources -Wmost -Wno-four-char-constants -Wno-unknown-pragmas -F/Users/sylvain/Temp/ios-cmake/example/example-lib/build/CMakeFiles/CMakeTmp/Debug -mtvos-version-min=8.0 -fembed-bitcode -fvisibility=hidden -fvisibility-inlines-hidden -fobjc-abi-version=2 -fobjc-arc -mtvos-version-min=8.0 -fembed-bitcode -fvisibility=hidden -fvisibility-inlines-hidden -fobjc-abi-version=2 -fobjc-arc -miphoneos-version-min=8.0 -fembed-bitcode -fvisibility=hidden -fvisibility-inlines-hidden -fobjc-abi-version=2 -fobjc-arc -fembed-bitcode -MMD -MT dependencies -MF /Users/sylvain/Temp/ios-cmake/example/example-lib/build/CMakeFiles/CMakeTmp/CMAKE_TRY_COMPILE.build/Debug-appletvos/cmTC_2ddc4.build/Objects-normal/arm64/testCXXCompiler.d --serialize-diagnostics /Users/sylvain/Temp/ios-cmake/example/example-lib/build/CMakeFiles/CMakeTmp/CMAKE_TRY_COMPILE.build/Debug-appletvos/cmTC_2ddc4.build/Objects-normal/arm64/testCXXCompiler.dia -c /Users/sylvain/Temp/ios-cmake/example/example-lib/build/CMakeFiles/CMakeTmp/testCXXCompiler.cxx -o /Users/sylvain/Temp/ios-cmake/example/example-lib/build/CMakeFiles/CMakeTmp/CMAKE_TRY_COMPILE.build/Debug-appletvos/cmTC_2ddc4.build/Objects-normal/arm64/testCXXCompiler.o
clang: error: invalid argument '-miphoneos-version-min=8.0' not allowed with '-mtvos-version-min=8.0'
clang: warning: using sysroot for 'AppleTVOS' but targeting 'iPhone' [-Wincompatible-sysroot]

** BUILD FAILED **

The following build commands failed:
    CompileC CMAKE_TRY_COMPILE.build/Debug-appletvos/cmTC_2ddc4.build/Objects-normal/arm64/testCXXCompiler.o testCXXCompiler.cxx normal arm64 c++ com.apple.compilers.llvm.clang.1_0.compiler
(1 failure)
leetal commented 5 years ago

I will take a look at this today along with some other issues. Unclear to me right now why it sets both iphone an tvos flags together..

sy6sy2 commented 5 years ago

Thank you!

leetal commented 5 years ago

Fixed in v3.0.0 🚀