では動作しませんが、次のCMakeLists.txtcmakeの:add_dependenciesは外部プロジェクト
cmake_minimum_required(VERSION 3.0)
project(xyz)
include(ExternalProject)
set(EXTSRC ${CMAKE_SOURCE_DIR}/external)
ExternalProject_Add(q
GIT_REPOSITORY
"https://github.com/sftrabbit/CppSamples-Samples.git"
SOURCE_DIR ${EXTSRC}
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
INSTALL_COMMAND "")
add_executable(xyzbin
${EXTSRC}/1-common-tasks/ranges/range-iteration.cpp)
add_dependencies(xyzbin q)
私は外部のプロジェクトファイルを最初にダウンロードした後、私の実行可能な目標を設定することが開始されることを期待を考えてみましょう。しかし、そうではありません。
私は実行「cmakeのを..」ソースディレクトリ内のビルドディレクトリで、それが得られます。
(usual configure stuff above ....)
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done
CMake Error at CMakeLists.txt:16 (add_executable):
Cannot find source file:
/home/janberq/Desktop/cmake_problem/external/1-common-tasks/ranges/range-iteration.cpp
Tried extensions .c .C .c++ .cc .cpp .cxx .m .M .mm .h .hh .h++ .hm .hpp
.hxx .in .txx
CMake Error: CMake can not determine linker language for target: xyzbin
CMake Error: Cannot determine link language for target "xyzbin".
-- Generating done
-- Build files have been written to: /home/janberq/Desktop/cmake_problem/build
cmakeのが最初という点では不可能であるリンカー言語を取得しようと、同じように思え私はソースファイルを持っていないので、ケース。
私は
set_target_properties(xyzbin PROPERTIES LINKER_LANGUAGE CXX)
、追加しようとしたが、それは残念ながら、まったく動作しませんでした。そのエラーを修正するにはどうすればよいですか?
P.S.私のcmakeのバージョンは3.5.2、os:ubuntu 16.10です。
[ハウツーはCMakeのサードパーティプロジェクトからの選択されたソースを含めることができます](http://stackoverflow.com/questions/29041008/howto-include-selected-sources-from-third-party-project-in-cmake ) – Tsyvarev