2012-07-30 3 views
7

외부 라이브러리의 makefile을 내 소프트웨어의 makefile에 포함시키고 싶습니다. 가장 간단한 방법은 Makefile에 해당하는 CMake 코드 인 include ${dir}/makefile을 찾는 것입니다.CMake에 외부 메이크 파일 포함

하지만 약간의 문맥을 제공해야합니다. 내 코드에 PETSc (및 SLEPc)를 통합하려고합니다. (PETSc 꽤 많이 동일하지만) 여기 SLEPc를 사용하는 예제에서 일부 코드는 다음과 같습니다 당신이 볼 수 있듯이

hello: hello.o chkopts 
     -${CLINKER} -o hello hello.o ${SLEPC_LIB} 
     ${RM} hello.o 

include ${SLEPC_DIR}/conf/slepc_common 

는, 그것이 다른 메이크의 무리를 포함하는 특정 메이크 파일의 포함이 필요합니다. 이것은 단지 include 디렉토리를 가지고있는 것이 더 간단했을 것 같기 때문에 조금 이상합니다. 그러나 분명히 이해할 수있는 것보다 더 많은 것이 있습니다. 어쨌든, 내 첫 번째 솔루션은 단순히 원하는 메이크 파일을 포함 시켜서 작동하는지 확인하는 것이 었습니다.

답변

0

CMake의 일부로 include method이 있습니다. 정책 범위를 올바르게 설정하면 (2.8까지는 작동하지 않음) PROJECT 메소드의 중복 사용을 처리하고 원하는 결과를 제공해야합니다. 나는 이것을 시도하지 않았지만, 그럴만 한 가치가있다.

1

나는 그것을 크로스 플랫폼을 확인하는 것입니다 CMake의 핵심 원칙의 생성 단계 한 동안 전혀 메이크가 생성으로 CMake의 설계 모델에 맞지 않는 이 요구 사항을 믿고, 그래서 더 나은 아이디어가 수도 수 :

    이 CMake 스크립트에서 외부 빌드 시스템을 다시 작성
  1. 는 프로젝트의 CMake 스크립트를 포함

노력이 큰 경우 add_custom_target/add_custom_command을 사용하여 생성 된 파일을 조정할 수있는 기본 제공 명령을 시도 할 수 있지만 상당한 노력이 필요합니다. 설명서를 읽고 더 많은 기회를 찾으십시오.