Я новичок в CMake, прочитал несколько уроков о том, как его использовать, и написал несколько сложных 50 строк сценария CMake, чтобы создать программу для 3 различных компиляторов. Это, вероятно, завершает все мои знания в 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
Я что-то упустил?