【发布时间】:2013-03-28 03:04:46
【问题描述】:
来自 SVN 的最新 LLVM libc++ 3.3 带有 CMakeLists.txt。我是 CMake 新手,但昨天我学习到能够在 RHEL 6.4 x86_64 主机上构建libc++ check-out。
此外,我能够在上述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?。但是,我不想使用add_library 并枚举所有源文件,而是使用libc++ 的CMakeList.txt 采用的方法 - 使用APPEND。
我可以通过将下面第 40 行中的 ON 替换为 OFF 来生成静态库
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 文件以便同时构建两者?
【问题讨论】:
标签: c++ cmake clang libc++ cpack