4
나는 이미 cmake 아래에 큰 프로젝트를 가지고 있습니다. 나는 새로운 타겟을 만들기 위해 소스 파일과 의존 헤더 파일의 목록을 얻는 방법을 찾고있다. (예를 들어 Emacs를위한 etags에서). 혼자서 대답을 찾으려고했으나 쉽지 않은 것 같습니다.cmake 소스 목록 얻기
이상적인 soultion는 그런 일이 될 것입니다 :
add_executable(my_project <some list of source files and libraries defined in different directories>)
add_custom_target(tags
COMMAND etags <list of all *.cpp and *.h files used in 'my_project' target>
DEPENDS <list of all *.cpp and *h used in 'my_project' target>
COMMENT "Creates source code tags for Emacs")
당신은 어쩌면 '태그'대상 가져 오기를 만드는 방법을 알고 모든 일에 모든 cmake 구성 파일을 다시 할 필요없이 'my_project'대상에서 모든 종속성 디렉토리?
감사합니다. 간단한 경우에 효과가있는 것 같습니다. 그러나'add_library (SOME_LIB)'를 가진 서브 디렉토리가 있고 실행 파일이'target_link_libraries (my_project SOME_LIB) '와 링크되어 있다면 그 의존성은 나타나지 않습니다. 또한 PUBLIC_/PRIVATE_ HEADER를 작동시키지 못합니다. * .cpp를 컴파일하는 동안 종속물 (예 : 헤더)을 가져 와서 변수에서 얻을 수 있습니까? –