@@ -13,7 +13,7 @@ set_env(BUILD_NUMBER 0)
1313set (VERSION ${PROJECT_VERSION } .${BUILD_NUMBER} )
1414
1515configure_file ( libdigidocpp.pc.cmake libdigidocpp.pc @ONLY )
16- configure_file ( ${ CMAKE_SOURCE_DIR }/etc/digidocpp.conf.cmake digidocpp.conf )
16+ configure_file (${ PROJECT_SOURCE_DIR }/etc/digidocpp.conf.cmake digidocpp.conf )
1717
1818file (WRITE ${CMAKE_CURRENT_BINARY_DIR } /tslcerts.h "namespace digidoc {\n static const std::vector<X509Cert> tslcerts {\n " )
1919foreach (TSL_CERT ${TSL_CERTS} )
@@ -23,7 +23,7 @@ foreach(TSL_CERT ${TSL_CERTS})
2323endforeach ()
2424file (APPEND ${CMAKE_CURRENT_BINARY_DIR } /tslcerts.h "};\n }" )
2525
26- set (SCHEMA_DIR ${CMAKE_SOURCE_DIR } /etc/schema)
26+ set (SCHEMA_DIR ${PROJECT_SOURCE_DIR } /etc/schema)
2727set ( SCHEMA_FILES
2828 ${SCHEMA_DIR} /conf.xsd
2929 ${SCHEMA_DIR} /OpenDocument_manifest_v1_2.xsd
@@ -66,7 +66,10 @@ add_library(digidocpp_util STATIC
6666 util/log.cpp
6767)
6868
69- target_link_libraries (digidocpp_util PUBLIC digidocpp_ver PRIVATE $<$<OR :$<PLATFORM_ID :Darwin >,$<PLATFORM_ID :iOS >>:-framework \ CoreFoundation >)
69+ target_link_libraries (digidocpp_util
70+ PUBLIC $<BUILD_INTERFACE :digidocpp_ver >
71+ PRIVATE $<$<OR :$<PLATFORM_ID :Darwin >,$<PLATFORM_ID :iOS >>:-framework \ CoreFoundation >
72+ )
7073
7174add_library (digidocpp_tsl STATIC
7275 crypto/Connect.cpp
@@ -82,7 +85,7 @@ set_target_properties(digidocpp_util digidocpp_tsl PROPERTIES
8285 POSITION_INDEPENDENT_CODE YES
8386)
8487
85- target_include_directories (digidocpp_tsl PUBLIC ${CMAKE_CURRENT_SOURCE_DIR } )
88+ target_include_directories (digidocpp_tsl PUBLIC $< BUILD_INTERFACE : $ {CMAKE_CURRENT_SOURCE_DIR }> )
8689
8790target_link_libraries (digidocpp_tsl
8891 digidocpp_util
@@ -252,7 +255,11 @@ if(SWIG_FOUND)
252255 endif ()
253256endif ()
254257
255- install ( TARGETS digidocpp
258+ if (NOT ${BUILD_SHARED_LIBS } )
259+ set (STATIC_TARGETS minizip digidocpp_tsl digidocpp_util)
260+ endif ()
261+
262+ install (TARGETS digidocpp ${STATIC_TARGETS}
256263 EXPORT libdigidocppExport
257264 LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
258265 ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
@@ -261,29 +268,31 @@ install( TARGETS digidocpp
261268 PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} /digidocpp
262269 FRAMEWORK DESTINATION ${FRAMEWORK_DESTINATION}
263270)
264- if (NOT ANDROID )
265- install (EXPORT libdigidocppExport
266- FILE libdigidocpp-config.cmake
267- NAMESPACE digidocpp::
268- DESTINATION ${CMAKE_INSTALL_LIBDIR} /cmake/libdigidocpp
269- )
270- include (CMakePackageConfigHelpers )
271- write_basic_package_version_file (
272- "${CMAKE_CURRENT_BINARY_DIR } /libdigidocpp-config-version.cmake"
273- VERSION ${PROJECT_VERSION }
274- COMPATIBILITY AnyNewerVersion
275- )
276- install (FILES "${CMAKE_CURRENT_BINARY_DIR } /libdigidocpp-config-version.cmake"
277- DESTINATION ${CMAKE_INSTALL_LIBDIR} /cmake/libdigidocpp
278- )
279- endif ()
271+
272+ install (EXPORT libdigidocppExport
273+ FILE libdigidocpp-config.cmake
274+ NAMESPACE digidocpp::
275+ DESTINATION ${CMAKE_INSTALL_LIBDIR} /cmake/libdigidocpp
276+ )
277+ include (CMakePackageConfigHelpers )
278+ write_basic_package_version_file (
279+ "${CMAKE_CURRENT_BINARY_DIR } /libdigidocpp-config-version.cmake"
280+ VERSION ${PROJECT_VERSION }
281+ COMPATIBILITY AnyNewerVersion
282+ )
283+ install (FILES "${CMAKE_CURRENT_BINARY_DIR } /libdigidocpp-config-version.cmake"
284+ DESTINATION ${CMAKE_INSTALL_LIBDIR} /cmake/libdigidocpp
285+ )
280286
281287if (WIN32 )
282288 list (APPEND CRYPTO_HEADER crypto/WinSigner.h)
283289 target_compile_options (digidocpp_util PUBLIC "/guard:cf" )
284290 target_link_options (digidocpp PUBLIC "/guard:cf" )
285291 target_link_libraries (digidocpp PRIVATE Crypt32 cryptui ncrypt )
286- install (FILES $<TARGET_PDB_FILE :digidocpp > $<TARGET_PDB_FILE :digidoc -tool > DESTINATION ${CMAKE_INSTALL_BINDIR} OPTIONAL )
292+ install (FILES $<TARGET_PDB_FILE :digidocpp > DESTINATION ${CMAKE_INSTALL_BINDIR} OPTIONAL )
293+ if (TARGET digidoc-tool)
294+ install (FILES $<TARGET_PDB_FILE :digidoc -tool > DESTINATION ${CMAKE_INSTALL_BINDIR} OPTIONAL )
295+ endif ()
287296 if (SIGNCERT)
288297 foreach (TARGET digidocpp digidoc-tool digidoc_java digidoc_csharp digidoc_python)
289298 if (TARGET ${TARGET} )
@@ -310,7 +319,7 @@ if( FRAMEWORK )
310319 set_source_files_properties ( ${CRYPTO_HEADER} PROPERTIES MACOSX_PACKAGE_LOCATION Headers/crypto )
311320 list (GET OPENSSL_LIBRARIES 0 LIBPATH)
312321 get_filename_component ( LIBPATH ${LIBPATH} PATH )
313- set (COPY_LIBRARIES_SCRIPT ${CMAKE_BINARY_DIR } /copy_libraries.cmake)
322+ set (COPY_LIBRARIES_SCRIPT ${PROJECT_BINARY_DIR } /copy_libraries.cmake)
314323 file (WRITE ${COPY_LIBRARIES_SCRIPT} "
315324 message(\" Copy dependencies: \$ ENV{LIBRARY} \$ ENV{BUNDLE_DIR}\" )
316325 file(GET_RUNTIME_DEPENDENCIES LIBRARIES \$ ENV{LIBRARY} RESOLVED_DEPENDENCIES_VAR OUT)
@@ -372,13 +381,13 @@ if( FRAMEWORK )
372381 add_custom_target (pkgbuild DEPENDS digidocpp $<TARGET_NAME_IF_EXISTS :digidoc -tool >
373382 COMMAND DESTDIR=install ${CMAKE_COMMAND } --install .
374383 COMMAND pkgbuild --root install "$<$<BOOL :${SIGNCERT} >:--sign ;${SIGNCERT} >"
375- ${CMAKE_BINARY_DIR } /libdigidocpp_${VERSION}$ENV{VER_SUFFIX}.pkg
384+ ${PROJECT_BINARY_DIR } /libdigidocpp_${VERSION}$ENV{VER_SUFFIX}.pkg
376385 COMMAND_EXPAND_LISTS
377386 )
378387 add_custom_target (zipdebug DEPENDS digidocpp $<TARGET_NAME_IF_EXISTS :digidoc -tool >
379388 COMMAND dsymutil -o libdigidocpp.dSYM $<TARGET_FILE :digidocpp >
380389 $<$<TARGET_EXISTS :digidoc -tool >:$<TARGET_FILE :digidoc -tool >>
381- COMMAND zip -r ${CMAKE_BINARY_DIR } /libdigidocpp-dbg_${VERSION}$ENV{VER_SUFFIX}.zip libdigidocpp.dSYM
390+ COMMAND zip -r ${PROJECT_BINARY_DIR } /libdigidocpp-dbg_${VERSION}$ENV{VER_SUFFIX}.zip libdigidocpp.dSYM
382391 )
383392else ()
384393 if (NOT ${BUILD_SHARED_LIBS } )
0 commit comments