我找不到任何对我的问题有帮助的问题,所以就在这里(或证明我错了)。
首先:我在Windows下执行所有操作,并且仅针对Visual Studio进行构建。
我的情况:我的主目录包含一个“主” CMakeList。因此,这里是进行cmake调用,它本身并不多:
cmake_minimum_required(VERSION 3.13.1)
project (EulerAdventureReinvented)
if (CMAKE_GENERATOR MATCHES Win64)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/lib/Win64/")
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/lib/Win64/")
set(EXECUTABLE_OUTPUT_PATH "${CMAKE_SOURCE_DIR}/bin/Win64/")
else()
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/lib/Win32/")
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/lib/Win32/")
set(EXECUTABLE_OUTPUT_PATH "${CMAKE_SOURCE_DIR}/bin/Win32/")
endif()
add_subdirectory(source)
但是它在源目录中添加了另一个CMakeLists,用于执行“主”项目的设置。因此它包含add_executable调用,我想保持这种方式。但是问题在于它确实将vcxproj文件,CMakeFiles目录写入该源目录中,但是我希望将它们放在根目录中,或者...其他地方。
最终问题:我需要为此设置什么?我的意思是我要更改哪个变量。我搜索并发现了很多东西,以至于遇到了反复试验的问题,甚至在其他地方也找不到我的文件。
编辑:为了避免在生成文件和生成文件之间造成混淆,我对标题进行了一些更改。我不想设置构建路径,因为上面的代码已经完成了构建。
答案 0 :(得分:0)
在CMake 3.13.2中,以下开关可用:
cmake [<options>] -S <path-to-source> -B <path-to-build>
因此,在您上面描述的情况下,它将类似于:
cmake -S . -B .\build
现在,没有用于设置<path-to-build>
的变量,但是您可以从CMAKE_BINARY_DIR
获取它的信息。您设置的变量控制着工件的结束位置,而不是项目文件的创建位置或中间文件的位置。