Trong dự án của tôi có thư mục chứa thư viện của bên thứ ba (google test, zlib, ...). Tôi muốn đặt các thư viện trong một thư mục chung khi tất cả các thư viện này được xây dựng. Tôi đang cố gắng làm điều này với cmake nhưng tôi đang gặp vấn đề. Tôi đang cố gắng mã này:Sao chép hoặc di chuyển libs sau khi xây dựng với cmake
add_subdirectory(gtest-1.6.0)
add_custom_command(
TARGET gtest_main
POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy ${SRC_LIB_DIR}/*.a ${DST_LIB_DIR})
Tôi nghĩ rằng vấn đề có thể là mục tiêu chính trong gtest không được định nghĩa ở cấp độ này nhưng ở một mức độ thấp hơn
Không hoạt động. Tạo mã này: SET (CMAKE_LIBRARY_OUTPUT_DIRECTORY "$ {PROJECT_BINARY_DIR}/third_party/lib/release") và sau đó thêm thư mục con gtest, không làm gì cả. Các thư viện luôn đi đến thư mục gốc của thư mục gtest. – Killrazor
Vì gtest xây dựng 'STATIC' libs theo mặc định, bạn muốn đặt [' CMAKE_ARCHIVE_OUTPUT_DIRECTORY'] (http://www.cmake.org/cmake/help/v2.8.10/cmake.html#prop_tgt:ARCHIVE_OUTPUT_DIRECTORY) thay vì 'CMAKE_LIBRARY_OUTPUT_DIRECTORY' dùng cho' libED' libs. – Fraser
Cảm ơn Fraser và Patrick. CMAKE_ARCHIVE_OUTPUT_DIRECTORY đã thực hiện thủ thuật. Cảm ơn cả hai nha!! – Killrazor