2013-04-05 87 views
5

來自SVN的最新LLVM libc++ 3.3帶有CMakeLists.txt。我是一名CMake新手,但昨天我學習的足夠多,可以在RHEL 6.4 x86_64主機上構建libc++簽出。爲LLVM libC++構建靜態和共享庫3.3

此外,我能夠在上述CMakeLists.txt中添加足夠的CPack相關命令來生成libcxx-3.3.svn-0.el6.x86_64.rpm。但很有可能是因爲CMake的新手而無法同時創建靜態和共享庫。

是的。我回顧了Is it possible to get CMake to build both a static and shared version of the same library?。但是,我想使用libc++CMakeList.txt - 使用APPEND的方法,而不是使用add_library並枚舉所有源文件。

我可以通過線40 OFF更換ON下面建立一個靜態庫

40 option(LIBCXX_ENABLE_SHARED "Build libc++ as a shared library." ON) 
41 

生成靜態庫或者我可以離開它,因爲是建立起一個共享庫。

我還修改了以下幾行,例如刪除了NOT或註釋掉了232和233行。但無論我嘗試了什麼,我似乎都無法讓靜態庫與共享庫一起構建。

232 if (NOT LIBCXX_ENABLE_SHARED) 
233 list(APPEND LIBCXX_CXX_FEATURE_FLAGS -D_LIBCPP_BUILD_STATIC) 
234 endif() 

如何調整CMakeList.txt文件以便同時構建兩者?

回答

3

好的。我決定使用add_library命令的「試驗和真實」方法,列出所有*.cpp。它工作OOTB,所以我認爲它是一個解決方案。

一旦我有時間提高我的熟練度CMake,我將再次訪問此問題。