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)