2016-10-28 76 views
1

大廈第三方庫我有以下結構在構建過程中

+--foo/ 
    | 
    +-- CMakeLists.txt 
    +-- src/ 
    +-- include/ 
    +-- third-party/ 
     | 
     +-- thing.tar.gz 

構建過程的一個步驟是膨脹和解壓thing.tar.gz,使用CMake的構建它,一旦準備好項目繼續編譯並鏈接src(我的實際項目)下的任何內容。

我想要完成所有這些工作從源,在build目錄中。最終我想我的構建過程如下:

$ cd /path/to/where/I/want/to/build/ 
$ cmake /path/to/directory/containing/CMakeFiles.txt/ 
$ make 
# make inflates, untars, and builds thing.tar.gz 
$ ls 
# lists all the CMake stuff and the following folders: 
# bin/ -> with all my application AND thing.tar.gz executables 
# lib/ -> with all my libraries AND thing.tar.gz libraries 
# include/ -> with all my headers AND thing.tar.gz headers 

對於我的生活,我找不到一個簡單的解決方案!到目前爲止,我可以依靠EXECUTE_PROCESS提取到構建樹中的文件夾,但我無法在生成的庫上調用CMake,或者通知我的其餘項目嘿,我提取並構建了您的依賴關係[此處]和[there];你現在可以繼續建設

你會如何解決這個問題?

+1

[ExternalProject_Add](https://cmake.org/cmake/help/v3.0/module/ExternalProject.html)應該優雅地構建3D方庫。在任何情況下,**顯示您的代碼**,這不符合您的預期。 – Tsyvarev

+0

@Tsyvarev我沒有通過EXECUTE_PROCESS(正確提取到構建目錄)的代碼,因爲我在網上找到的每個解決方案似乎都非常複雜。 – Escualo

回答

0

使用-DCMAKE_PREFIX_PATH=可以在您自己的項目的cmake調用期間將cmake指向您的依賴項的構建工件安裝到的位置。