bit*_*gor 8 c++ cmake visual-studio-2010
我正在为我的项目设置cmake,我已经为它设置了一个测试项目.当它生成我的visual studio 2010项目时,我想把它作为我之前的项目.
当我在windows上构建时,如何在构建Linux时排除某些文件?就像我有WindowWin.cpp和WindowLinux.cpp一样.
我已经尝试了你的吸气但不能让它起作用:
#LibProject/src
FILE(GLOB test0_headers $CMakeTest_SOURCE_DIR/LibProject/inc/test.h)
source_group(include0 FILES ${test0_headers})
FILE(GLOB test0_source ${CMakeTest_SOURCE_DIR}/LibProject/src/test.cpp)
source_group(source0 FILES ${test0_source})
FILE(GLOB test1_headers $CMakeTest_SOURCE_DIR/LibProject/inc/test1.h)
source_group(include1 FILES ${test1_headers})
FILE(GLOB test1_source ${CMakeTest_SOURCE_DIR}/LibProject/src/test1.cpp)
source_group(source1 FILES ${test1_source})
include_directories(${test0_headers} ${test1_headers})
add_library(LibProject ${test0_headers} ${test1_headers} ${test0_source} ${test
1_source})
Run Code Online (Sandbox Code Playgroud)
我现在有点工作..只是我想要源组中的头文件和源文件的子文件夹.
set(test_source0 ${CMakeTest_SOURCE_DIR}/LibProject/inc/test.h ${CMakeTest_SOURCE_DIR}/LibProject/src/test.cpp)
source_group(TEST FILES ${test_source0})
set(test_source1 ${CMakeTest_SOURCE_DIR}/LibProject/inc/test2.h ${CMakeTest_SOURCE_DIR}/LibProject/src/test2.cpp)
source_group(TEST2 FILES ${test_source1})
include_directories(${CMakeTest_SOURCE_DIR}/LibProject/inc)
add_library(LibProject ${test_source0} ${test_source1})
Run Code Online (Sandbox Code Playgroud)
继承人我的解决方案:)
set(test_header
${CMakeTest_SOURCE_DIR}/LibProject/inc/test.h)
set(test_source
${CMakeTest_SOURCE_DIR}/LibProject/src/test.cpp)
source_group(TEST\\Headers FILES ${test_header})
source_group(TEST\\Source FILES ${test_source})
set(test2_header
${CMakeTest_SOURCE_DIR}/LibProject/inc/test2.h)
set(test2_source
${CMakeTest_SOURCE_DIR}/LibProject/src/test2.cpp)
source_group(TEST2\\Headers FILES ${test2_header})
source_group(TEST2\\Source FILES ${test2_source})
include_directories(${CMakeTest_SOURCE_DIR}/LibProject/inc)
add_library(LibProject
${test_header}
${test_source}
${test2_header}
${test2_source})
Run Code Online (Sandbox Code Playgroud)
要将文件分组到Visual Studio中的文件夹,您可以使用:
# Include files
FILE(GLOB all_headers "include/*.h*")
source_group("include" FILES ${all_headers})
# Source files
FILE(GLOB all_srcs "src/*.cpp")
source_group("source" FILES ${all_srcs})
Run Code Online (Sandbox Code Playgroud)
这将使包含在include文件夹中的所有.h文件显示在Visual Studio中名为include的文件夹中.您的cpp文件也是如此.您可以使用此技术在CMake中创建自己的结构,如果这是您想要的.
出于ALL_BUILD和ZERO_CHECK的目的,请阅读此答案.要禁用ZERO_CHECK的生成使用set(CMAKE_SUPPRESS_REGENERATION true).
要在OpenGL和DirectX之间进行选择并设置相应的文件夹,您可以使用上面使用的相同技术,但将它们放在一个
if(${USE_OPENGL})
FILE(GLOB ....)
endif()
Run Code Online (Sandbox Code Playgroud)
我想你应该已经明白了.
| 归档时间: |
|
| 查看次数: |
8848 次 |
| 最近记录: |