| PROJECT( libplist ) |
| |
| SET( LIBPLIST_VERSION_MAJOR "1" ) |
| SET( LIBPLIST_VERSION_MINOR "10" ) |
| SET( LIBPLIST_SOVERSION "1" ) |
| SET( LIBPLIST_VERSION "${LIBPLIST_VERSION_MAJOR}.${LIBPLIST_VERSION_MINOR}" ) |
| SET( LIBPLIST_LIBVERSION "${LIBPLIST_SOVERSION}.${LIBPLIST_VERSION}" ) |
| SET( PLISTUTIL_VERSION ${LIBPLIST_VERSION} ) |
| |
| SET( CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake ${CMAKE_SOURCE_DIR}/cmake/modules ) |
| |
| cmake_minimum_required(VERSION 2.6) |
| |
| IF(NOT DEFINED CMAKE_INSTALL_LIBDIR) |
| SET(CMAKE_INSTALL_LIBDIR lib CACHE PATH "Output directory for libraries") |
| ENDIF(NOT DEFINED CMAKE_INSTALL_LIBDIR) |
| |
| FIND_PACKAGE( LibXml2 REQUIRED ) |
| |
| OPTION(ENABLE_SWIG "Enable SWIG Python bindings (needs Swig)" ON) |
| OPTION(ENABLE_CYTHON "Enable Cython Python bindings (needs Cython)" ON) |
| |
| IF(ENABLE_SWIG) |
| FIND_PACKAGE( SWIG ) |
| ENDIF(ENABLE_SWIG) |
| |
| IF(ENABLE_CYTHON) |
| FIND_PACKAGE( Cython ) |
| ENDIF(ENABLE_CYTHON) |
| |
| IF(ENABLE_SWIG OR ENABLE_CYTHON) |
| FIND_PACKAGE( PythonInterp ) |
| FIND_PACKAGE( PythonLibs ) |
| ENDIF(ENABLE_SWIG OR ENABLE_CYTHON) |
| |
| INCLUDE_DIRECTORIES( ${CMAKE_CURRENT_SOURCE_DIR}/include |
| ${CMAKE_INCLUDE_PATH}) |
| |
| ENABLE_TESTING() |
| |
| IF (NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/libcnary/CMakeLists.txt") |
| MESSAGE(FATAL_ERROR " |
| You need to checkout the 'libcnary' submodule to build libplist. |
| To do so, perform the following steps in the base directory: |
| git submodule init |
| git submodule update |
| Then, run cmake again.") |
| ENDIF() |
| |
| INCLUDE (TestBigEndian) |
| TEST_BIG_ENDIAN(endianess) |
| SET ( PLIST_BYTE_ORDER ${endianess} ) |
| |
| ADD_SUBDIRECTORY( libcnary ) |
| ADD_SUBDIRECTORY( src ) |
| ADD_SUBDIRECTORY( plistutil ) |
| ADD_SUBDIRECTORY( include ) |
| ADD_SUBDIRECTORY( test ) |
| |
| ADD_DEPENDENCIES( plist libcnary ) |
| |
| IF ( SWIG_FOUND AND PYTHONLIBS_FOUND AND PYTHONINTERP_FOUND ) |
| ADD_SUBDIRECTORY( swig ) |
| ENDIF ( SWIG_FOUND AND PYTHONLIBS_FOUND AND PYTHONINTERP_FOUND ) |
| IF ( CYTHON_FOUND AND PYTHONLIBS_FOUND AND PYTHONINTERP_FOUND ) |
| ADD_SUBDIRECTORY( cython ) |
| ENDIF ( CYTHON_FOUND AND PYTHONLIBS_FOUND AND PYTHONINTERP_FOUND ) |
| |
| # add uninstall target |
| CONFIGURE_FILE( "${CMAKE_SOURCE_DIR}/cmake/modules/cmake_uninstall.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake" IMMEDIATE @ONLY) |
| ADD_CUSTOM_TARGET(uninstall "${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake") |
| |
| ########## PkgConfig ############################ |
| CONFIGURE_FILE( "libplist.pc.in" "${CMAKE_CURRENT_BINARY_DIR}/libplist.pc" ) |
| CONFIGURE_FILE( "libplist++.pc.in" "${CMAKE_CURRENT_BINARY_DIR}/libplist++.pc" ) |
| |
| ########## INSTALL ############################## |
| INSTALL( FILES "${CMAKE_CURRENT_BINARY_DIR}/libplist.pc" DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig/ ) |
| INSTALL( FILES "${CMAKE_CURRENT_BINARY_DIR}/libplist++.pc" DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig/ ) |
| |
| ########## CPack ################################ |
| INCLUDE( libplistPackaging ) |
| LIBPLIST_PACKAGE(LIBPLIST_VERSION_MAJOR LIBPLIST_VERSION_MINOR) |