私はcmakeのは、このようなIARコンパイラなどの多数のモジュールをインストールされていることに気付きました:私は、この特定のモジュールをロードする方法を尋ね前の質問でCMake(IAR)で別のコンパイラを使うには?
https://github.com/Kitware/CMake/blob/master/Modules/Compiler/IAR.cmake
。その答えは、次のように追加するだけでした。
set(CMAKE_C_COMPILER iccarm.exe)
on my CMakeLists.txt
IAR.cmake
が実際には使用されていないため、残念ながら私は気づいたが、これでは不十分である。 CMakeLists.txt
次の場合:
-- The C compiler identification is IAR
-- Check for working C compiler: C:/Program Files (x86)/IAR Systems/Embedded Workbench 8.0/arm/bin/iccarm.exe
-- Check for working C compiler: C:/Program Files (x86)/IAR Systems/Embedded Workbench 8.0/arm/bin/iccarm.exe -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- IARARM_CMAKE_LOADED=
-- IAR CMAKE_C_COMPILE_OBJECT=<CMAKE_C_COMPILER> <SOURCE> <DEFINES> <INCLUDES> <FLAGS> -o <OBJECT>
-- Configuring done
-- Generating done
-- Build files have been written to: C:/Users/Ycr/Home/sandbox/cmake
IARARM_CMAKE_LOADED
が定義されていない
とCMAKE_C_COMPILE_OBJECT
が--silent
オプションは、私はCMakeのを伝えることができますどのようにhere
が定義されていない:
cmake_minimum_required(VERSION 3.6)
set(CMAKE_SYSTEM_NAME Generic)
set(CMAKE_SYSTEM_PROCESSOR arm)
set(CMAKE_C_COMPILER iccarm.exe)
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
list(APPEND src src/main.c)
project("foo" C)
add_executable(foo ${src})
message(STATUS "IARARM_CMAKE_LOADED=${_IARARM_CMAKE_LOADED}")
message(STATUS "IAR CMAKE_C_COMPILE_OBJECT=${CMAKE_C_COMPILE_OBJECT}")
私はこの出力を取得しますIARモジュールを使用するには?
まあ、私も理解し始めています。 3ヶ月前に '--silent'による修正が追加されました。これはかなり最近の変更であり、Windows用の' CMake 'は3.9.1ではなく3.9.1でした。私がGitHubから(そしてCygwinのインストールでCMakeから3.9.2だった)ソースを直接見ていたとき、私は混乱しました。 – nowox
'--trace-expand'は私を大きく助けました! – nowox
私はまだ混乱しました。あなたが作成した[d8e6cd9ed](https://github.com/Kitware/CMake/commit/d8e6cd9ed8bfee9073cff26cb654bc01e653b0b9)は** v3.9.2 **の一部ではないようですが、あなたの変更は** v3.9.0- rc4 **。それは終わりのようです。どのように構成されているのですか?Gitリポジトリはどこでも雑音の多い 'Merge branch 'リリース-3.9'でいっぱいです。 – nowox