Tôi gặp sự cố với CMake trong đó tôi không thể thêm tệp của mình vào thư mục/bộ lọc bên trong Visual Studio.Thêm tệp vào source_group trong CMake
# Add folders to filters
file(GLOB_RECURSE DATABASE_SRCS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/database *.cpp *.h)
file(GLOB_RECURSE LOG_SRCS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/log *.cpp *.h)
file(GLOB_RECURSE NETWORK_SRCS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/network *.cpp *.h)
file(GLOB_RECURSE THREADING_SRCS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/threading *.cpp *.h)
file(GLOB_RECURSE UTILS_SRCS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/utils *.cpp *.h)
source_group(database FILES ${DATABASE_SRCS})
source_group(log FILES ${LOG_SRCS})
source_group(network FILES ${NETWORK_SRCS})
source_group(threading FILES ${THREADING_SRCS})
source_group(utils FILES ${UTILS_SRCS})
Một vấn đề mà có thể gây ra vấn đề này là các GLOB_RECURSE
's trả lại hồ sơ có trong ${CMAKE_CURRENT_SOURCE_DIR}
nhưng so với các /database
(hoặc bất kỳ thư mục khác).
Ví dụ: có tệp trong database/
được gọi là dbcore.cpp
. Tệp này được thêm vào DATABASE_SRCS
là dbcore.cpp
, nhưng các tệp trong thư mục chính (ví dụ: ${CMAKE_CURRENT_SOURCE_DIR}
) cũng được thêm, nhưng có đường dẫn tương đối với database/
, chẳng hạn như ../common.h
.
Một vấn đề khác có thể là bên trong dự án Visual Studio, bộ lọc "Tệp tiêu đề" và "Tệp nguồn" mặc định đã tồn tại.
Tôi đang sử dụng CMake 2.8.6 và Visual Studio 11/2012.