2013-11-08 6 views
2

По причинам, не имеющим значения, я хотел бы иметь возможность включать несколько файлов в файл toolchain. Допустим, мой Набор инструментов содержит следующие:cmake toolchain включает в себя несколько файлов

 
message(STATUS "file1 is ok") 
include(./build/file2) 

file2 содержит идентификационную строку:

 
message(STATUS "file2 is ok") 

CMakeLists.txt содержит:

 
cmake_minimum_required (VERSION 2.8.8) 
project (pro) 
message(STATUS "cmakelists.txt is ok")

Я называю это с помощью следующей команды:

 
cmake -DCMAKE_TOOLCHAIN_FILE=../../build/file1 ../../

Теперь я ожидаю следующий вывод:

 
-- file1 is ok 
-- file2 is ok 
-- cmakelists.txt is ok

Но я стал таким:

 
-- file1 is ok 
-- file2 is ok 
-- file1 is ok 
-- file2 is ok 
-- The C compiler identification is Clang 5.0.0 
-- The CXX compiler identification is Clang 5.0.0 
-- Check for working C compiler: /usr/bin/cc 
CMake Error at /fullpath/build/file1:2 (include): 
    include could not find load file: 
    ./build/file2 
Call Stack (most recent call first): 
    /fullpath/build/Mac/CMakeFiles/2.8.12/CMakeSystem.cmake:6 (include) 
    CMakeLists.txt:2 (PROJECT) 
CMake Error: Internal CMake error, TryCompile configure of cmake failed 
-- Check for working C compiler: /usr/bin/cc -- broken 
CMake Error at /Applications/CMake 2.8-12.app/Contents/share/cmake-2.8/Modules/CMakeTestCCompiler.cmake:61 (message): 
    The C compiler "/usr/bin/cc" is not able to compile a simple test program. 
    It fails with the following output: 
    CMake will not be able to correctly generate this project. 
Call Stack (most recent call first): 
    CMakeLists.txt:2 (project) 
-- Configuring incomplete, errors occurred!

Не только CMake печатает информацию дважды, также утверждают, что он не может найти файлы, включенные в третий раз после этого.

Любые идеи?

ответ

3

Не только CMake печатает информацию дважды

Это нормально: во время конфигурации, выполняются несколько шагов. На каждом шаге используется файл toolchain.

также утверждает, что он не может найти включенные файлы в третий раз после этого. Есть идеи?

Обеспечить абсолютный путь.

+0

Я сделал именно это и выяснил, что в третий раз cmake использует каталог «fullpath/build/target/CMakeFiles/CMakeTmp /» вместо предполагаемого «полного пути». конечно, он не может найти файлы .. – etwas77