나는 우리가 코드를 마이 그 레이션 할 생각을하고있는 순간 CMake를 배우고있다. 우리가 현재 만들고있는 시스템으로 많은 일을하는 한 가지는 공통 코드 파일을 "서브 프로젝트"하는 것입니다. 예를 들어, 우리는 우리가 만드는 모든 프로젝트에 포함되는 많은 공유 된 일반 헤더 (일부 c/cpp 파일 포함)를 가지고 있습니다. 내가 CMake에서 이것을 복제하고 싶지만 쉽게 할 수있는 방법이 없다. 정확히 말하면, 내가 좋아하는 뭔가를하고 싶지 :CMake : 파일을 "subprojecting"하는 가장 좋은 방법
부모 CMakeLists.txt을
#Somehow have a list of files here that get added to the parent project
지금까지 내가 찾은
add_subdirectory(shared_folder shared_build_folder)
#Next line should somehow add in the files reference in the shared_folder
add_executable([specific files for this project] build_folder)
아이 CMakeLists.txt (shared_folder) 이것을하는 다양한 "방법",하지만 모두 조금 해킹 보입니다. 나는 이것이 실제로 내가해야 할 일이고 CMake가이 발전 스타일을 향한 것이 아니라는 결론에 도달 할 것입니다. 명확성을 위해, 대부분의 솔루션은 파일 목록으로 구성된 상위 수준에서 변수를 만드는 것과 같은 작업을 수행합니다. 이 변수 (어떤 헛소리를 통해)는 어떤 자식들과 "통과"할 수 있으며, 채워진 후 add_exectuable을 호출하면 그 변수를 사용하여 파일을 추가합니다.
내 모든 솔루션에는 꽤 많은 매크로/기능이 포함되어 있으며 약간의 오버 헤드가 있습니다. 이것은 다른 사람들이 시도한 것입니까? 이것을하기위한 최선의 접근법에 대한 단서가 있습니까?
감사 앤드류
우리는 똑같은 문제에 직면하고 우리가 CMake 방향을 받아들이고 그것이 우리의 구조의 일부를 변경하는 것을 의미하는 경우에도 더 나은 구조화 된 프로젝트의 결과 우는 시간 후 한