Python 프로젝트를 위한 CMake 설정 가이드
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
DevOps
대상자
C++ 및 Python 혼합 프로젝트 개발자, CMake 사용자, DevOps 엔지니어
핵심 요약
- CMakeLists.txt 파일을 통해 Python 가상 환경(
venv
) 자동 생성 create_venv()
함수로 requirements.txt 의 의존성 설치 및 관리make
또는 Ninja 도구로 C++/Python 앱 통합 실행 가능- CMake 3.28 이상 버전 필요
섹션별 세부 요약
1. 프로젝트 구조 정의
app1
,app2
,app3
폴더 각각에CMakeLists.txt
,main.py
또는main.cpp
포함build/
폴더에 프로젝트 루트CMakeLists.txt
생성requirements.txt
파일로 Python 의존성 정의
2. CMakeLists.txt 구성
find_package(Python3 REQUIRED COMPONENTS Interpreter)
로 Python 인터프리터 찾기create_venv()
함수 정의:
- 기존 가상 환경이 있을 경우 생성 생략
- requirements.txt
파일이 없을 경우 오류 발생
- execute_process()
로 가상 환경 생성 및 pip 설치 실행
3. 실행 타겟 정의
add_custom_target(run_appX ...)
로 각 앱 실행 명령 정의DEPENDS
옵션으로 가상 환경 생성 종속성 설정make run_app1
,make run_app2
등으로 각 앱 실행 가능
4. 빌드 및 실행
cmake ..
명령으로 빌드 디렉토리 초기화cmake --build .
로 모든 타겟 빌드- Ninja 도구 사용 예시:
cmake .. -G Ninja
후ninja run_appX
결론
- CMake를 활용해 C++/Python 혼합 프로젝트의 의존성 및 실행 흐름 통합 관리 가능
create_venv()
함수와add_custom_target()
으로 가상 환경 자동화 및 실행 명령 정의 권장- Ninja를 사용하면
make
대비 빠른 빌드 성능 향상 가능