4
0
mirror of https://github.com/QuasarApp/qca.git synced 2025-05-12 02:39:34 +00:00

cmake: added new option OSX_FRAMEWORK

This commit is contained in:
Ivan Romanov 2014-10-29 03:17:28 +06:00
parent 2445411897
commit 5de8ea800d
4 changed files with 27 additions and 6 deletions

@ -25,6 +25,12 @@ set(BUILD_PLUGINS "auto" CACHE STRING "Plugins for building (also possible value
option(BUILD_SHARED_LIBS "Build shared library" ON)
option(DEVELOPER_MODE "Special developer mode" OFF)
if(APPLE)
option(OSX_FRAMEWORK "Build a Mac OS X Framework" ON)
else()
set(OSX_FRAMEWORK OFF)
endif()
find_package(Doxygen)
string(TOLOWER "${BUILD_PLUGINS}" BUILD_PLUGINS)
@ -197,6 +203,14 @@ foreach(PATH QCA_PLUGINS_INSTALL_DIR
endforeach()
if(NOT WIN32)
if(OSX_FRAMEWORK)
set(PKGCONFIG_CFLAGS "-F\${libdir} -I\${libdir}/${QCA_LIB_NAME}.framework/Headers")
set(PKGCONFIG_LIBS "-F\${libdir} -framework ${QCA_LIB_NAME}")
else()
set(PKGCONFIG_CFLAGS "-I\${includedir}")
set(PKGCONFIG_LIBS "-L\${libdir} -l${QCA_LIB_NAME}")
endif()
# qca2.pc uses absolute paths. So it must be there. Don't rellocate this.
configure_file("qca2.pc.cmake" "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/pkgconfig/${QCA_PC_NAME}" @ONLY)
if(NOT DEVELOPER_MODE)
@ -391,10 +405,14 @@ if(NOT DEVELOPER_MODE)
message("QCA prefix is " "${QCA_PREFIX_INSTALL_DIR}")
message("Plugins will be installed to " "${QCA_PREFIX_INSTALL_DIR}${QCA_PLUGINS_INSTALL_DIR}")
message("Binary will be installed to " "${QCA_PREFIX_INSTALL_DIR}${QCA_BINARY_INSTALL_DIR}")
message("Library will be installed to " "${QCA_PREFIX_INSTALL_DIR}${QCA_LIBRARY_INSTALL_DIR}")
if(OSX_FRAMEWORK)
message("Framework will be installed to " "${QCA_PREFIX_INSTALL_DIR}${QCA_LIBRARY_INSTALL_DIR}")
else()
message("Library will be installed to " "${QCA_PREFIX_INSTALL_DIR}${QCA_LIBRARY_INSTALL_DIR}")
message("Public headers will be installed to " "${QCA_PREFIX_INSTALL_DIR}${QCA_INCLUDE_INSTALL_DIR}")
message("Private headers will be installed to " "${QCA_PREFIX_INSTALL_DIR}${QCA_PRIVATE_INCLUDE_INSTALL_DIR}")
endif()
message("Feature file will be installed to " "${QCA_PREFIX_INSTALL_DIR}${QCA_FEATURE_INSTALL_DIR}")
message("Public headers will be installed to " "${QCA_PREFIX_INSTALL_DIR}${QCA_INCLUDE_INSTALL_DIR}")
message("Private headers will be installed to " "${QCA_PREFIX_INSTALL_DIR}${QCA_PRIVATE_INCLUDE_INSTALL_DIR}")
message("Documentation will be installed to " "${QCA_PREFIX_INSTALL_DIR}${QCA_DOC_INSTALL_DIR}")
message("Man page will be installed to " "${QCA_PREFIX_INSTALL_DIR}${QCA_MAN_INSTALL_DIR}")
message("Pkg-config file will be installed to " "${QCA_PREFIX_INSTALL_DIR}${PKGCONFIG_INSTALL_PREFIX}")

@ -33,6 +33,7 @@ Notes
DEVELOPER_MODE - mode to enable features for developers. If ON
will be used hardcoded path to 'crypto'
(by default: OFF)
OSX_FRAMEWORK - build an OS X framework (by default: ON)
Finally install paths can be override with:

@ -7,5 +7,5 @@ Name: QCA
Description: Qt Cryptographic Architecture library
Version: @QCA_LIB_VERSION_STRING@
Requires: @QCA_QT_PC_VERSION@
Libs: -L${libdir} -l@QCA_LIB_NAME@
Cflags: -I${includedir}
Libs: @PKGCONFIG_LIBS@
Cflags: @PKGCONFIG_CFLAGS@

@ -136,7 +136,7 @@ qt4_wrap_cpp( SOURCES "${qca_INCLUDEDIR}/QtCrypto/qpipe.h")
qt4_wrap_cpp( SOURCES "qca_safeobj.h")
qt4_wrap_cpp( SOURCES "${qca_INCLUDEDIR}/QtCrypto/qca_safetimer.h")
ADD_LIBRARY(${QCA_LIB_NAME} ${LIBRARY_TYPE} ${SOURCES})
ADD_LIBRARY(${QCA_LIB_NAME} ${LIBRARY_TYPE} ${SOURCES} ${public_HEADERS})
TARGET_LINK_LIBRARIES(${QCA_LIB_NAME} ${QT_QTCORE_LIBRARY})
if(WIN32)
@ -153,6 +153,7 @@ set_target_properties(${QCA_LIB_NAME} PROPERTIES
SOVERSION ${QCA_LIB_MAJOR_VERSION}
DEFINE_SYMBOL QCA_MAKEDLL
PUBLIC_HEADER "${public_HEADERS}"
FRAMEWORK ${OSX_FRAMEWORK}
EXPORT_NAME qca
)
@ -162,6 +163,7 @@ if(NOT DEVELOPER_MODE)
LIBRARY DESTINATION "${QCA_LIBRARY_INSTALL_DIR}"
RUNTIME DESTINATION "${QCA_BINARY_INSTALL_DIR}"
ARCHIVE DESTINATION "${QCA_LIBRARY_INSTALL_DIR}"
FRAMEWORK DESTINATION "${QCA_LIBRARY_INSTALL_DIR}"
PUBLIC_HEADER DESTINATION "${QCA_INCLUDE_INSTALL_DIR}/QtCrypto" INCLUDES DESTINATION "${QCA_INCLUDE_INSTALL_DIR}/QtCrypto"
)