rewrite for eet 2.0 api version v4
This commit is contained in:
+124
@@ -0,0 +1,124 @@
|
||||
cmake_minimum_required(VERSION 3.24)
|
||||
|
||||
project(EetCpp
|
||||
VERSION 2.0.0
|
||||
LANGUAGES CXX
|
||||
)
|
||||
|
||||
option(EETCPP_BUILD_PLAYGROUND "Build the manual EET v4 Playground CLI" ON)
|
||||
|
||||
include(CTest)
|
||||
include(CMakePackageConfigHelpers)
|
||||
|
||||
find_package(Qt6 6.5 REQUIRED COMPONENTS Core Network)
|
||||
find_package(PkgConfig REQUIRED)
|
||||
pkg_check_modules(XMLSEC1 REQUIRED IMPORTED_TARGET xmlsec1)
|
||||
find_path(LIBXML2_INCLUDE_DIR libxml/parser.h
|
||||
HINTS
|
||||
${CMAKE_PREFIX_PATH}/opt/libxml2/include/libxml2
|
||||
/opt/homebrew/opt/libxml2/include/libxml2
|
||||
/usr/local/opt/libxml2/include/libxml2
|
||||
)
|
||||
find_library(LIBXML2_LIBRARY NAMES xml2
|
||||
HINTS
|
||||
${CMAKE_PREFIX_PATH}/opt/libxml2/lib
|
||||
/opt/homebrew/opt/libxml2/lib
|
||||
/usr/local/opt/libxml2/lib
|
||||
)
|
||||
if(NOT LIBXML2_INCLUDE_DIR OR NOT LIBXML2_LIBRARY)
|
||||
message(FATAL_ERROR "A libxml2 installation compatible with xmlsec1 is required.")
|
||||
endif()
|
||||
|
||||
add_library(EetCpp STATIC
|
||||
libEet/eetcpp_global.h
|
||||
libEet/eetv4request.cpp
|
||||
libEet/eetv4request.h
|
||||
libEet/eetv4xml.cpp
|
||||
libEet/eetv4xml.h
|
||||
libEet/eetv4soap.cpp
|
||||
libEet/eetv4soap.h
|
||||
libEet/eetv4signer.cpp
|
||||
libEet/eetv4signer.h
|
||||
libEet/eetv4response.cpp
|
||||
libEet/eetv4response.h
|
||||
libEet/eetv4client.cpp
|
||||
libEet/eetv4client.h
|
||||
libEet/eetca.cpp
|
||||
libEet/eetca.h
|
||||
)
|
||||
|
||||
add_library(EetCpp::EetCpp ALIAS EetCpp)
|
||||
|
||||
target_compile_features(EetCpp PUBLIC cxx_std_17)
|
||||
target_compile_definitions(EetCpp PRIVATE EETCPP_LIBRARY)
|
||||
target_include_directories(EetCpp
|
||||
PUBLIC
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/libEet>
|
||||
$<INSTALL_INTERFACE:include/EetCpp>
|
||||
PRIVATE
|
||||
${LIBXML2_INCLUDE_DIR}
|
||||
)
|
||||
target_link_libraries(EetCpp
|
||||
PUBLIC
|
||||
Qt6::Core
|
||||
Qt6::Network
|
||||
${LIBXML2_LIBRARY}
|
||||
PkgConfig::XMLSEC1
|
||||
)
|
||||
|
||||
set_target_properties(EetCpp PROPERTIES
|
||||
EXPORT_NAME EetCpp
|
||||
VERSION ${PROJECT_VERSION}
|
||||
SOVERSION ${PROJECT_VERSION_MAJOR}
|
||||
)
|
||||
|
||||
include(GNUInstallDirs)
|
||||
|
||||
install(TARGETS EetCpp
|
||||
EXPORT EetCppTargets
|
||||
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||
)
|
||||
|
||||
install(FILES
|
||||
libEet/eetcpp_global.h
|
||||
libEet/eetcpp.h
|
||||
libEet/eetv4request.h
|
||||
libEet/eetv4xml.h
|
||||
libEet/eetv4soap.h
|
||||
libEet/eetv4signer.h
|
||||
libEet/eetv4response.h
|
||||
libEet/eetv4client.h
|
||||
libEet/eetca.h
|
||||
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/EetCpp
|
||||
)
|
||||
|
||||
configure_package_config_file(
|
||||
eetcpp-config.cmake.in
|
||||
${CMAKE_CURRENT_BINARY_DIR}/EetCppConfig.cmake
|
||||
INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/EetCpp
|
||||
)
|
||||
write_basic_package_version_file(
|
||||
${CMAKE_CURRENT_BINARY_DIR}/EetCppConfigVersion.cmake
|
||||
COMPATIBILITY SameMajorVersion
|
||||
)
|
||||
|
||||
install(EXPORT EetCppTargets
|
||||
FILE EetCppTargets.cmake
|
||||
NAMESPACE EetCpp::
|
||||
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/EetCpp
|
||||
)
|
||||
install(FILES
|
||||
${CMAKE_CURRENT_BINARY_DIR}/EetCppConfig.cmake
|
||||
${CMAKE_CURRENT_BINARY_DIR}/EetCppConfigVersion.cmake
|
||||
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/EetCpp
|
||||
)
|
||||
|
||||
if(BUILD_TESTING)
|
||||
add_subdirectory(tests)
|
||||
endif()
|
||||
|
||||
if(EETCPP_BUILD_PLAYGROUND)
|
||||
add_subdirectory(playground)
|
||||
endif()
|
||||
Reference in New Issue
Block a user