Ubuntu
, C++
및 cmake
을 사용하여 다른 프로그램의 코드 인 Beta
을 기반으로 프로그램 Alpha
을 만들고 싶습니다. 난 이미 Beta
에 대한 소스 코드가 있고,이 기존 코드를 사용하는 Alpha
에 대한 코드를 작성해야합니다. 나는 모든 것을 깔끔하게 유지하려고 노력하고 있으므로 Alpha
및 Beta
소스 파일, Alpha.cpp
및 Beta.cpp
에 대한 별도의 디렉토리가 있습니다.다른 CMakeLists.txt에서 cmake로 변수 읽기
가 여기 내 디렉토리 구조입니다 :
/CMakeLists.txt
/Alpha.cpp (the main function)
/Beta
/CMakeLists.txt
/Beta.cpp
Alpha
에 대한 나의 CMakeLists.txt
파일은 다음과 같습니다 : 이제
cmake_minimum_required(VERSION 2.8)
project(Alpha)
add_executable(Alpha Alpha.cpp Beta/Beta.cpp)
, 원래의 코드에 Beta
를 들어, CMakeLists.txt
파일 정보를 많이 가지고, 운영체제 검사, 패키지 찾기, 그리고 일반적으로 다양한 cmake 변수 정의 등. Alpha
에 대해 CMakeLists.txt
파일의 변수를 사용해야하므로 Beta.cpp
이 제대로 컴파일됩니다.
그럼 내 질문 :이 정보를 모두 Alpha
의 CMakeLists.txt
파일에 모두 쓸 필요없이 Beta/CmakeLists.txt
에 모두 유지할 수 있습니까? 그런 다음 Alpha
의 CMakeLists.txt
파일에이 변수를 가져 오려면 Beta
의 CMakeLists.txt
파일을 읽으려면 어떻게해야합니까? 모든 것을 깔끔하게 유지하고 모듈성을 유지하려면이 작업을 수행하고 싶습니다. 감사!
감사를 참조
을 수 그리고 알파의 CMakeList.txt 것이다. 귀하의 예제에서'Beta/CMakeLists.txt'는 모든 변수가'Beta/Beta.cmake'에 있다면 왜 여전히 필요합니까? – Karnivaurus
또한 Alpha의 CMakeList.txt의 세 번째 줄은'include (Beta/Beta.cmake)'가 아니겠습니까? – Karnivaurus
'Beta/CMakeLists.txt'를 모두 포함하길 원하는지 여부는 Alpha의 CMakeLists.txt에 필요한 정보의 양에 달려 있습니다. 아이디어는 두 가지 모두에서 필요한 공통 항목을 추출하고 별도의 파일에 넣고 포함시키는 것입니다. –