私はCMakeにかなり慣れていないので、その使用方法に関するいくつかのチュートリアルを読み、3つの異なるコンパイラー用のプログラムを作成するために、CMakeスクリプトの複雑な50行を書きました。これで、CMakeに関する私の知識はすべて終わります。
私の問題は、プログラムを作成するときに、そのフォルダーに触れたり、変更したりしたくないソースコードがあることです。すべてのCMakeおよびmake
出力ファイルとフォルダーをに入れたい../Compile/
ので、CMakeスクリプトのいくつかの変数をそのために変更しました。ラップトップで次のようなことをしたとき、それはしばらくの間機能しました:
Compile$ cmake ../src
Compile$ make
それで、私が今いるフォルダーにきれいな出力がありました。それがまさに私が探しているものです。
今、私は別のコンピューターに移動し、CMake 2.8.11.2を再コンパイルしましたが、ほぼ正方形に戻りました!それは常にsrc
私のものCMakeLists.txt
が置かれているフォルダーに事をコンパイルします。
CMakeスクリプトでディレクトリを選択する部分は次のとおりです。
set(dir ${CMAKE_CURRENT_SOURCE_DIR}/../Compile/)
set(EXECUTABLE_OUTPUT_PATH ${dir} CACHE PATH "Build directory" FORCE)
set(LIBRARY_OUTPUT_PATH ${dir} CACHE PATH "Build directory" FORCE)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${dir})
set(CMAKE_BUILD_FILES_DIRECTORY ${dir})
set(CMAKE_BUILD_DIRECTORY ${dir})
set(CMAKE_BINARY_DIR ${dir})
SET(EXECUTABLE_OUTPUT_PATH ${dir})
SET(LIBRARY_OUTPUT_PATH ${dir}lib)
SET(CMAKE_CACHEFILE_DIR ${dir})
そして今、それは常に終わります:
-- Build files have been written to: /.../src
何か不足していますか?
CMAKE_BINARY_DIR
CMAKE_CACHEFILE_DIR
set()
cd Compile; rm -rf *; cmake ../src