우리는 Visual Studio 2008 용 솔루션 파일을 생성하기 위해 CMake를 사용하고 있습니다. 라이브러리와 실행 파일을 빌드하는 일반적인 소스 프로젝트 외에도 구성 파일 만 포함하는 프로젝트를 만들고 싶습니다. 이러한 파일은 런타임에 프로젝트의 동작을 구성하는 데 사용됩니다. 프로젝트를 빌드하는 데 필요하지 않지만 솔루션에 포함 시키면 해당 파일을 편리하게 편집 할 수 있습니다. 그래서 같이 사용하여이 add_custom_target
을 달성 할 수 있었다 :CMake가 구성 파일 만 포함하는 Visual Studio 프로젝트를 만드는 방법은 무엇입니까?
file(GLOB ini_files ${PROJECT_SOURCE_DIR}/../config/ini/*)
source_group(ini FILES ${ini_files})
file(GLOB xml_files ${PROJECT_SOURCE_DIR}/../config/xml/*)
source_group(xml FILES ${xml_files})
add_custom_target(config SOURCES ${ini_files} ${xml_files})
이 나에게 하위 폴더로 구성 파일을 포함하는 "설정"프로젝트를 제공합니다. 그러나 존재하지 않는 파일에 "config"라는 링크가 있습니다. 이 규칙에 의해 생성 된 타겟에 대한 링크라고 가정합니다. 건설 할 것이 없기 때문에 이것은 죽은 연결로 남아있을 것입니다. 이제 내 질문은 다음과 같습니다.
- 내가 원하는 것을 달성하기위한 올바른 방법은 add_custom_target입니까? 그렇지 않은 경우 더 나은 해결책은 무엇입니까?
- 올바른 방법이라면 어떻게 대상 이름에 대한 링크를 제거 할 수 있습니까? 또한, "CMake 규칙"폴더를 제거하여 구성 프로젝트를 가능한 한 깨끗하게 만들고 싶습니다.
이 통찰력있는 답변에 감사드립니다. 기존 프로젝트에 파일 추가하기. 그러나 문제는 프로젝트가 실제로 프로젝트 외부의 프레임 워크에서 사용되는 모듈 (동적 라이브러리, dll 또는 기타 파일)을 빌드한다는 것입니다. 어쩌면 config 파일을 자신이 속한 모듈에 넣을 수도 있습니다. 일부는 여러 번 사용됩니다. 모듈을 사용하도록 프레임 워크를 구성하는 파일도 있으므로 모듈에 의해 읽혀지지 않습니다. Unix Makefiles의 경우 유용하지는 않지만이 프로젝트의 유일한 목적은 설정 파일을 VS에 추가하는 것입니다. – ahans
@ahans 아무것도 여러 프로젝트에 파일을 포함하지 못하게하지 마십시오. 파일이 복제되지 않으므로 오버 헤드가 최소화됩니다. – SirDarius
흥미로운 점. 이것은 프레임 워크를 구성하는 파일의 문제를 해결하지 못합니다. 나는 확실히 염두에 두었습니다. 어느 시점에서 유용 할 수도 있습니다. 지금은'add_library'를 사용하여 이것을 해결했습니다; 이것은 내가 원했던 것과 똑같습니다. – ahans