development

CMake?를 사용하여 폴더의 모든 파일을 대상에 자동으로 추가 하시겠습니까?

big-blog 2020. 6. 19. 07:46
반응형

CMake?를 사용하여 폴더의 모든 파일을 대상에 자동으로 추가 하시겠습니까?


Visual C ++, XCode 및 makefile의 별도 빌드 관리 시스템에서 CMake로 크로스 플랫폼 프로젝트를 전환하는 것을 고려하고 있습니다.

필요한 한 가지 필수 기능은 디렉토리의 모든 파일을 대상에 자동으로 추가하는 것입니다. 이것은 make로하기 쉽지만 Visual C ++ 및 XCode로는 쉽게 수행 할 수 없습니다 (잘못된 경우 수정하십시오). CMake에서 직접 할 수 있습니까? 어떻게?


것이 가능하다. file(GLOB:

cmake_minimum_required(VERSION 2.8)

file(GLOB helloworld_SRC
    "*.h"
    "*.cpp"
)

add_executable(helloworld ${helloworld_SRC})

참고이이 요구하는 매뉴얼 을 다시 실행하는 cmake생성 된 빌드 시스템이 다시 생성 CMake를 요청할 때 알 수 없기 때문에 소스 파일이 추가되거나 제거되면, 그리고 빌드 시간을 증가시킬 모든 빌드에 그 일을.


Kleist의 대답은 확실히 작동하지만 중요한주의 사항이 있습니다.

Makefile수동으로 작성할 때 SRCS모든 .cpp.h파일 을 선택하는 함수를 사용하여 변수를 생성 할 수 있습니다. 소스 파일이 나중에 추가되면 재실행에 make포함됩니다.

그러나 CMake (와 같은 명령 사용 file(GLOB ...))는 명시 적으로 파일 목록을 생성하여 자동 생성 된 파일 목록에 배치합니다 Makefile. 새 소스 파일이 있으면을 다시 Makefile실행 하여 파일을 다시 생성해야합니다 cmake.

편집 : Makefile을 제거 할 필요가 없습니다.

참고 URL : https://stackoverflow.com/questions/3201154/automatically-add-all-files-in-a-folder-to-a-target-using-cmake

반응형