Skip to content

Commit

Permalink
Test
Browse files Browse the repository at this point in the history
  • Loading branch information
metsma committed Feb 12, 2025
1 parent 10f5d14 commit a7c28b4
Show file tree
Hide file tree
Showing 4 changed files with 48 additions and 53 deletions.
5 changes: 3 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,10 @@ SET_ENV(BUILD_NUMBER 0)
set(VERSION ${PROJECT_VERSION}.${BUILD_NUMBER})
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED YES)
set(CMAKE_C_VISIBILITY_PRESET hidden)
set(CMAKE_CXX_VISIBILITY_PRESET hidden)
set(CMAKE_C_VISIBILITY_PRESET hidden)
set(CMAKE_CXX_VISIBILITY_PRESET hidden)
set(CMAKE_VISIBILITY_INLINES_HIDDEN YES)
set(BUILD_SHARED_LIBS YES CACHE BOOL "Build library as SHARED or STATIC")
set(CMAKE_DEBUG_POSTFIX "d" CACHE STRING "Adds a postfix for debug-built libraries.")
set(CPACK_PACKAGE_VERSION ${VERSION})
set(CPACK_GENERATOR RPM)
Expand Down
91 changes: 42 additions & 49 deletions cdoc/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,6 @@ set(PUBLIC_HEADERS
ConsoleLogger.h
)

if(WIN32)
list(APPEND PUBLIC_HEADERS WinBackend.h)
add_compile_definitions(UNICODE WIN32_LEAN_AND_MEAN)
endif()

add_library(cdoc_ver INTERFACE)
target_compile_definitions(cdoc_ver INTERFACE
VERSION_STR="${VERSION}"
Expand All @@ -33,7 +28,8 @@ target_compile_definitions(cdoc_ver INTERFACE
)
target_sources(cdoc_ver INTERFACE libcdoc.rc)

add_library(cdoc_obj OBJECT
add_library(cdoc
${PUBLIC_HEADERS}
CDoc.cpp
Io.cpp
Recipient.cpp
Expand All @@ -47,6 +43,7 @@ add_library(cdoc_obj OBJECT
Crypto.cpp Crypto.h
Tar.cpp Tar.h
ZStream.h
# Internal
Utils.cpp Utils.h
CDoc1Reader.cpp CDoc1Reader.h
CDoc1Writer.cpp CDoc1Writer.h
Expand All @@ -61,44 +58,45 @@ add_library(cdoc_obj OBJECT
CDoc2.h
Wrapper.h
)
set_target_properties(cdoc_obj PROPERTIES POSITION_INDEPENDENT_CODE YES)
target_compile_definitions(cdoc_obj PRIVATE cdoc_EXPORTS)
target_include_directories(cdoc_obj PRIVATE ${PROJECT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR})
target_link_libraries(cdoc_obj
PUBLIC
OpenSSL::SSL
LibXml2::LibXml2
ZLIB::ZLIB
$<$<PLATFORM_ID:Windows>:Crypt32 NCrypt cryptui>
PRIVATE
$<TARGET_NAME_IF_EXISTS:flatbuffers::flatbuffers>
#$<TARGET_NAME_IF_EXISTS:flatbuffers::flatbuffers_shared>
set_target_properties(cdoc PROPERTIES
VERSION ${PROJECT_VERSION}
SOVERSION 1
PUBLIC_HEADER "${PUBLIC_HEADERS}"
FRAMEWORK_VERSION 1
FRAMEWORK "${FRAMEWORK}"
MACOSX_FRAMEWORK_IDENTIFIER "ee.ria.cdoc"
MACOSX_RPATH YES
POSITION_INDEPENDENT_CODE YES
)
target_include_directories(cdoc PUBLIC
$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}>
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
$<INSTALL_INTERFACE:include>
PRIVATE ${CMAKE_CURRENT_BINARY_DIR}
)
if(NOT BUILD_SHARED_LIBS)
target_compile_definitions(cdoc PUBLIC cdoc_STATIC)
endif()
target_link_libraries(cdoc PRIVATE
OpenSSL::SSL
LibXml2::LibXml2
ZLIB::ZLIB
#cdoc_ver
$<TARGET_NAME_IF_EXISTS:flatbuffers::flatbuffers>
#$<TARGET_NAME_IF_EXISTS:flatbuffers::flatbuffers_shared>
)

macro(add_cdoc_library lib_name lib_type lib_visibility)
add_library(${lib_name} ${lib_type} ${PUBLIC_HEADERS})
set_target_properties(${lib_name} PROPERTIES
VERSION ${PROJECT_VERSION}
SOVERSION 1
PUBLIC_HEADER "${PUBLIC_HEADERS}"
FRAMEWORK_VERSION 1
FRAMEWORK "${FRAMEWORK}"
MACOSX_FRAMEWORK_IDENTIFIER "ee.ria.cdoc"
MACOSX_RPATH YES
)
target_link_libraries(${lib_name} ${lib_visibility} cdoc_obj)
target_include_directories(${lib_name} PUBLIC
$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}>
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
$<INSTALL_INTERFACE:include>
)
endmacro()
add_cdoc_library(cdoc SHARED PRIVATE)
add_cdoc_library(cdoc_static STATIC PUBLIC)
target_link_libraries(cdoc PRIVATE cdoc_ver ${CMAKE_DL_LIBS})

add_executable(cdoc-tool cdoc-tool.cpp CDocChipher.cpp)
target_link_libraries(cdoc-tool cdoc_ver $<IF:$<PLATFORM_ID:Darwin>,cdoc_static,cdoc>)
target_link_libraries(cdoc-tool cdoc_ver cdoc)
set_target_properties(cdoc-tool PROPERTIES
INSTALL_RPATH $<$<PLATFORM_ID:Darwin>:@executable_path/../lib>
)

if(WIN32)
list(APPEND PUBLIC_HEADERS WinBackend.h)
add_compile_definitions(UNICODE WIN32_LEAN_AND_MEAN)
target_link_libraries(cdoc PRIVATE Crypt32 NCrypt cryptui)
endif()

foreach(SCHEMA ${SCHEMAS})
get_filename_component(stem ${SCHEMA} NAME_WE)
Expand All @@ -116,7 +114,7 @@ foreach(SCHEMA ${SCHEMAS})
DEPENDS flatbuffers::flatc ${SCHEMA}
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
)
target_sources(cdoc_obj PRIVATE ${SCHEMA} ${GENERATED_INCLUDE})
target_sources(cdoc PRIVATE ${SCHEMA} ${GENERATED_INCLUDE})
endforeach()

if(SWIG_FOUND)
Expand All @@ -129,7 +127,7 @@ if(SWIG_FOUND)
set(CMAKE_SWIG_FLAGS -package ee.ria.cdoc)
swig_add_library(cdoc_java LANGUAGE java SOURCES ../libcdoc.i OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR}/java)
target_include_directories(cdoc_java PRIVATE ${JAVA_INCLUDE_PATH} $<$<BOOL:${JAVA_INCLUDE_PATH2}>:${JAVA_INCLUDE_PATH2}>)
target_link_libraries(cdoc_java cdoc_ver $<IF:$<PLATFORM_ID:Android>,cdoc_static,cdoc>)
target_link_libraries(cdoc_java cdoc_ver cdoc)
set_target_properties(cdoc_java PROPERTIES
INSTALL_RPATH $<$<PLATFORM_ID:Darwin>:/Library/Frameworks>
SWIG_COMPILE_DEFINITIONS $<$<PLATFORM_ID:Windows>:SWIGWIN>
Expand Down Expand Up @@ -207,15 +205,10 @@ install(TARGETS cdoc
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/cdoc
FRAMEWORK DESTINATION ${FRAMEWORK_DESTINATION}
)
if(WIN32)
if(WIN32 AND BUILD_SHARED_LIBS)
install(FILES $<TARGET_PDB_FILE:cdoc> DESTINATION ${CMAKE_INSTALL_BINDIR} OPTIONAL)
endif()

install(TARGETS cdoc_static
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
FRAMEWORK DESTINATION ${FRAMEWORK_DESTINATION}
)

if(NOT ANDROID)
install(EXPORT cdocExport
FILE cdoc-config.cmake
Expand Down
4 changes: 3 additions & 1 deletion cdoc/Exports.h
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,9 @@

#ifdef WIN32
#include <winapifamily.h>
#ifdef cdoc_EXPORTS
#ifdef cdoc_STATIC
#define CDOC_EXPORT
#elif defined(cdoc_EXPORTS)
#define CDOC_EXPORT __declspec(dllexport)
#else
#define CDOC_EXPORT __declspec(dllimport)
Expand Down
1 change: 0 additions & 1 deletion debian/libcdoc1.install
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
usr/lib/*/libcdoc.so.*
usr/lib/*/libcdoc_static.a
usr/lib/*/libcdoc_java.so
usr/lib/*/libcdoc_csharp.so
usr/bin/cdoc-tool
Expand Down

0 comments on commit a7c28b4

Please sign in to comment.