【发布时间】:2015-11-05 02:48:16
【问题描述】:
在使 CMake 项目具有分层文件夹管理的更改后,source_group() 似乎不再正常工作。 CMake 只是将所有内容转储到默认过滤器中。
我尝试了各种正则表达式来从父级获取每个源文件的相对文件路径,甚至在父级 CMakeLists.txt 中对源文件进行硬编码,以查看这是否是问题所在。在这些更改之后,我还尝试了几次重新生成 VS 项目。
以下是供您欣赏的示例文件:
父 CMakeLists.txt
cmake_minimum_required (VERSION 3.3)
set(SRCS)
add_subdirectory(PlatformDetection)
include_directories (.)
add_library(SystemAbstraction STATIC ${SRCS})
set_property(TARGET SystemAbstraction PROPERTY FOLDER "Engine")
set_target_properties(SystemAbstraction PROPERTIES LINKER_LANGUAGE CXX)
install (TARGETS SystemAbstraction
ARCHIVE DESTINATION lib)
子 CMakeLists.txt:
cmake_minimum_required (VERSION 3.3)
add_subdirectory(Compilers)
set(SRCS ${SRCS} PARENT_SCOPE)
和
cmake_minimum_required (VERSION 3.3)
set (COMPILER_DETECTION_HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/CompilerDetection.h)
set (COMPILER_DETECTION_SRC ${CMAKE_CURRENT_SOURCE_DIR}/CompilerDetection.cpp)
source_group("Header Files\\Platform Detection\\Compilers" FILES ${COMPILER_DETECTION_HEADERS})
source_group("Source Files\\Platform Detection\\Compilers" FILES ${COMPILER_DETECTION_SRC})
set(SRCS ${SRCS} ${COMPILER_DETECTION_HEADERS} ${COMPILER_DETECTION_SRC} PARENT_SCOPE)
【问题讨论】:
标签: c++ visual-studio cmake