Сегодня вечером я пытался создать deb для LLVM libc++ 3.4 на 64-битной машине Ubuntu 12.04LTS. Я хотел бы сначала создать deb, который состоит только из /usr/lib64/libc++.a
без каких-либо заголовков. Да, я знаю согласно руководству по упаковке библиотеки Debian, я должен включить файл в пакет *-dev
, но, будучи новичком в cmake
и cpack
, я хотел бы получить его постепенно.
Итак, я сначала изменил libcxx-3.4/lib/CMakeLists.txt
и добавил проверку if (см. строки 14 и 18).
$ cat CMakeLists.txt
1 if (NOT LIBCXX_INSTALL_SUPPORT_HEADERS)
2 set(LIBCXX_SUPPORT_HEADER_PATTERN PATTERN "support" EXCLUDE)
3 endif()
4
5 file(COPY .
6 DESTINATION "${CMAKE_BINARY_DIR}/include/c++/v1"
7 FILES_MATCHING
8 PATTERN "*"
9 PATTERN "CMakeLists.txt" EXCLUDE
10 PATTERN ".svn" EXCLUDE
11 ${LIBCXX_SUPPORT_HEADER_PATTERN}
12 )
13
14 if (${LIBCXX_ENABLE_SHARED} MATCHES "ON")
15 install(DIRECTORY "${CMAKE_BINARY_DIR}/include/c++/v1/"
16 DESTINATION include/c++/v1/
17 )
18 endif()
Затем в подкаталоге build
я выдал
CC=clang CXX=clang++ cmake -j2 -G "Unix Makefiles" -DLIBCXX_CXX_ABI=libcxxabi -DLIBCXX_LIBCXXABI_INCLUDE_PATHS="../libcxxabi/include" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr ../libcxx -DLIBCXX_ENABLE_SHARED=OFF
Созданный deb
по-прежнему состоит из всех заголовков. Если я закомментировал строки с 14 по 18, то в пакете не было заголовков. Я озадачен этим. Переменная, определенная для родительского элемента CMakeLists.txt
, должна использоваться дочерним элементом CMakeLists.txt
. Что я пропустил? Я был бы признателен за намек или два.