From 7adf60645acde7393e2b0bfd0bdaf7654b62f077 Mon Sep 17 00:00:00 2001 From: ngc92 Date: Thu, 10 Jan 2019 22:47:10 +0100 Subject: [PATCH 1/4] updated cmake file --- CMakeLists.txt | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 2672c5e..c3dc34a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -24,17 +24,17 @@ #(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS #SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -cmake_minimum_required( VERSION 2.8.12 ) +cmake_minimum_required( VERSION 3.5 ) project(archive_cpp_wrapper) -if(NOT libarchive_LIBRARIES) - # set defaults for ubuntu - set( libarchive_LIBRARIES "/usr/lib/x86_64-linux-gnu/libarchive.so" ) - set( libarchive_INCLUDE_DIRS "" ) -endif() +set(CMAKE_CXX_STANDARD 11) + +find_package(LibArchive) +add_library(LibArchive::LibArchive INTERFACE IMPORTED GLOBAL) +target_include_directories(LibArchive::LibArchive INTERFACE ${LibArchive_INCLUDE_DIRS}) +target_link_libraries(LibArchive::LibArchive INTERFACE ${LibArchive_LIBRARIES}) -set(CMAKE_CXX_FLAGS "-Wall -std=c++11") file(GLOB headers "${CMAKE_CURRENT_SOURCE_DIR}/*.hpp") file(GLOB template_implementations "${CMAKE_CURRENT_SOURCE_DIR}/*.ipp") @@ -57,7 +57,7 @@ add_library( ${PROJECT_NAME} SHARED ${template_implementations} ) -target_link_libraries( ${PROJECT_NAME} ${libarchive_LIBRARIES} ) +target_link_libraries( ${PROJECT_NAME} PRIVATE LibArchive::LibArchive ) set_target_properties( ${PROJECT_NAME} PROPERTIES VERSION "1.0.0" SOVERSION "1" ) @@ -84,3 +84,7 @@ install( DESTINATION include ) + + +# alias target +add_library(LibArchive::archive_cpp_wrapper ALIAS ${PROJECT_NAME}) From de6bb755427599467a3090bfcd755e0d99f611df Mon Sep 17 00:00:00 2001 From: ngc92 Date: Fri, 11 Jan 2019 01:39:46 +0100 Subject: [PATCH 2/4] cmake fixes --- CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index c3dc34a..a473005 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -39,8 +39,6 @@ target_link_libraries(LibArchive::LibArchive INTERFACE ${LibArchive_LIBRARIES}) file(GLOB headers "${CMAKE_CURRENT_SOURCE_DIR}/*.hpp") file(GLOB template_implementations "${CMAKE_CURRENT_SOURCE_DIR}/*.ipp") -include_directories( ${libarchive_INCLUDE_DIRS} ) - add_library( ${PROJECT_NAME} SHARED archive_entry.cpp @@ -58,6 +56,8 @@ add_library( ${PROJECT_NAME} SHARED ) target_link_libraries( ${PROJECT_NAME} PRIVATE LibArchive::LibArchive ) +target_include_directories(${PROJECT_NAME} PRIVATE ${libarchive_INCLUDE_DIRS} ) +target_include_directories(${PROJECT_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} ) set_target_properties( ${PROJECT_NAME} PROPERTIES VERSION "1.0.0" SOVERSION "1" ) From 65068b0d169cbe54d53b50d3c69a072ecc3ba4e6 Mon Sep 17 00:00:00 2001 From: Tobias Frost Date: Wed, 10 Feb 2021 11:46:57 +0100 Subject: [PATCH 3/4] Fix libarchive detection Modern libarchive cmake module exports the targetes already, leading to an error. --- CMakeLists.txt | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index a473005..722b3b3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -31,10 +31,11 @@ project(archive_cpp_wrapper) set(CMAKE_CXX_STANDARD 11) find_package(LibArchive) -add_library(LibArchive::LibArchive INTERFACE IMPORTED GLOBAL) -target_include_directories(LibArchive::LibArchive INTERFACE ${LibArchive_INCLUDE_DIRS}) -target_link_libraries(LibArchive::LibArchive INTERFACE ${LibArchive_LIBRARIES}) - +if(NOT TARGET LibArchive::LibArchive) + add_library(LibArchive::LibArchive INTERFACE IMPORTED GLOBAL) + target_include_directories(LibArchive::LibArchive INTERFACE ${LibArchive_INCLUDE_DIRS}) + target_link_libraries(LibArchive::LibArchive INTERFACE ${LibArchive_LIBRARIES}) +endif() file(GLOB headers "${CMAKE_CURRENT_SOURCE_DIR}/*.hpp") file(GLOB template_implementations "${CMAKE_CURRENT_SOURCE_DIR}/*.ipp") From d7b4ab8c53c07861dd39f853c7f6b5b563167c56 Mon Sep 17 00:00:00 2001 From: Tobias Frost Date: Wed, 10 Feb 2021 11:54:15 +0100 Subject: [PATCH 4/4] Mark libarchive as REQUIRED --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 722b3b3..07f629f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -30,7 +30,7 @@ project(archive_cpp_wrapper) set(CMAKE_CXX_STANDARD 11) -find_package(LibArchive) +find_package(LibArchive REQUIRED) if(NOT TARGET LibArchive::LibArchive) add_library(LibArchive::LibArchive INTERFACE IMPORTED GLOBAL) target_include_directories(LibArchive::LibArchive INTERFACE ${LibArchive_INCLUDE_DIRS})