我正在为我的项目设置cmake,并且已经为它建立了一个测试项目。当它生成我的visual studio 2010项目时,我想将它作为我之前的项目。指定cmake如何创建视觉工作室项目
- 它创建了一个我不想要的ALL_BUILD和ZERO_CHECK项目。
- 它将.h文件放到External Dependencies文件夹中。我想要一个包含所有.h文件的Include Files文件夹。
- 我也想在不同的过滤器下分组一些文件。就像在我的核心lib中,我想将与数学相关的所有文件归档到一个文件夹中,并将所有与事件管理相关的文件归入另一个文件夹。
- 在文件系统上,它将项目文件放在/ Lib/src中。可能是因为我把它组织在代码文件夹中,但我不希望为项目文件。
- 我想设置不同的配置,所以我有DebugOpenGL,DebugDirectX,ReleaseOpenGL,ReleaseDirectX,然后为这两种配置设置一个标志USE_OPENGL或USE_DIRECTX。
当我在linux上构建时,如何在Windows和其他平台上构建时排除某些文件?就像我有WindowWin.cpp和WindowLinux.cpp。
我试过你sugested什么,但不能得到它的工作:
#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})
我种了现在的工作。只有我想的头文件和源文件夹子在源组内部。
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})
继承人我的解决方案:)
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})
看http://stackoverflow.com/questions/27175754/what-are-all-build-and-zero-check-and-do-i-need-them看什么ZERO_CHECK和ALL_BUILD是。 – sashoalm