diff options
| -rw-r--r-- | CMakeLists.txt | 22 | ||||
| -rw-r--r-- | cmake/modules/FindGLIB2.cmake | 51 | ||||
| -rw-r--r-- | cmake/modules/FindLibXml2.cmake | 57 | ||||
| -rw-r--r-- | include/CMakeLists.txt | 4 | ||||
| -rw-r--r-- | plutil/CMakeLists.txt | 9 | ||||
| -rw-r--r-- | src/CMakeLists.txt | 17 | ||||
| -rw-r--r-- | swig/CMakeLists.txt | 14 |
7 files changed, 174 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..b6fe029 --- /dev/null +++ b/CMakeLists.txt | |||
| @@ -0,0 +1,22 @@ | |||
| 1 | PROJECT( libplist ) | ||
| 2 | |||
| 3 | SET( CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake ${CMAKE_SOURCE_DIR}/cmake/modules ) | ||
| 4 | |||
| 5 | cmake_minimum_required(VERSION 2.6) | ||
| 6 | |||
| 7 | FIND_PACKAGE( LibXml2 REQUIRED ) | ||
| 8 | FIND_PACKAGE( GLIB2 REQUIRED ) | ||
| 9 | FIND_PACKAGE( SWIG ) | ||
| 10 | FIND_PACKAGE( PythonLibs ) | ||
| 11 | |||
| 12 | INCLUDE_DIRECTORIES( "${CMAKE_CURRENT_SOURCE_DIR}/include" ) | ||
| 13 | |||
| 14 | ADD_SUBDIRECTORY( src ) | ||
| 15 | ADD_SUBDIRECTORY( plutil ) | ||
| 16 | ADD_SUBDIRECTORY( include ) | ||
| 17 | |||
| 18 | IF ( SWIG_FOUND AND PYTHON_LIBRARY ) | ||
| 19 | ADD_SUBDIRECTORY( swig ) | ||
| 20 | ENDIF ( SWIG_FOUND AND PYTHON_LIBRARY ) | ||
| 21 | |||
| 22 | CONFIGURE_FILE( "libplist.pc.in" "${CMAKE_CURRENT_BINARY_DIR}/libplist.pc" ) \ No newline at end of file | ||
diff --git a/cmake/modules/FindGLIB2.cmake b/cmake/modules/FindGLIB2.cmake new file mode 100644 index 0000000..226d551 --- /dev/null +++ b/cmake/modules/FindGLIB2.cmake | |||
| @@ -0,0 +1,51 @@ | |||
| 1 | # - Try to find the GLIB2 libraries | ||
| 2 | # Once done this will define | ||
| 3 | # | ||
| 4 | # GLIB2_FOUND - system has glib2 | ||
| 5 | # GLIB2_INCLUDE_DIR - the glib2 include directory | ||
| 6 | # GLIB2_LIBRARIES - glib2 library | ||
| 7 | |||
| 8 | # Copyright (c) 2008 Laurent Montel, <montel@kde.org> | ||
| 9 | # | ||
| 10 | # Redistribution and use is allowed according to the terms of the BSD license. | ||
| 11 | # For details see the accompanying COPYING-CMAKE-SCRIPTS file. | ||
| 12 | |||
| 13 | |||
| 14 | if(GLIB2_INCLUDE_DIR AND GLIB2_LIBRARIES) | ||
| 15 | # Already in cache, be silent | ||
| 16 | set(GLIB2_FIND_QUIETLY TRUE) | ||
| 17 | endif(GLIB2_INCLUDE_DIR AND GLIB2_LIBRARIES) | ||
| 18 | |||
| 19 | if (NOT WIN32) | ||
| 20 | FIND_PACKAGE(PkgConfig) | ||
| 21 | PKG_CHECK_MODULES(PC_GLIB2 glib-2.0) | ||
| 22 | SET(GLIB2_DEFINITIONS ${PC_GLIB2_CFLAGS_OTHER}) | ||
| 23 | endif(NOT WIN32) | ||
| 24 | |||
| 25 | find_path(GLIB2_MAIN_INCLUDE_DIR glib.h | ||
| 26 | PATH_SUFFIXES glib-2.0 | ||
| 27 | PATHS ${_LibGLIB2IncDir} ) | ||
| 28 | |||
| 29 | # search the glibconfig.h include dir under the same root where the library is found | ||
| 30 | find_library(GLIB2_LIBRARIES | ||
| 31 | NAMES glib-2.0 | ||
| 32 | PATHS ${_LibGLIB2LinkDir} ) | ||
| 33 | |||
| 34 | get_filename_component(glib2LibDir "${GLIB2_LIBRARIES}" PATH) | ||
| 35 | |||
| 36 | find_path(GLIB2_INTERNAL_INCLUDE_DIR glibconfig.h | ||
| 37 | PATH_SUFFIXES glib-2.0/include | ||
| 38 | PATHS ${_LibGLIB2IncDir} "${glib2LibDir}" ${CMAKE_SYSTEM_LIBRARY_PATH}) | ||
| 39 | |||
| 40 | set(GLIB2_INCLUDE_DIR "${GLIB2_MAIN_INCLUDE_DIR}") | ||
| 41 | |||
| 42 | # not sure if this include dir is optional or required | ||
| 43 | # for now it is optional | ||
| 44 | if(GLIB2_INTERNAL_INCLUDE_DIR) | ||
| 45 | set(GLIB2_INCLUDE_DIR ${GLIB2_INCLUDE_DIR} "${GLIB2_INTERNAL_INCLUDE_DIR}") | ||
| 46 | endif(GLIB2_INTERNAL_INCLUDE_DIR) | ||
| 47 | |||
| 48 | include(FindPackageHandleStandardArgs) | ||
| 49 | find_package_handle_standard_args(GLIB2 DEFAULT_MSG GLIB2_LIBRARIES GLIB2_MAIN_INCLUDE_DIR) | ||
| 50 | |||
| 51 | mark_as_advanced(GLIB2_INCLUDE_DIR GLIB2_LIBRARIES) \ No newline at end of file | ||
diff --git a/cmake/modules/FindLibXml2.cmake b/cmake/modules/FindLibXml2.cmake new file mode 100644 index 0000000..8d3c77e --- /dev/null +++ b/cmake/modules/FindLibXml2.cmake | |||
| @@ -0,0 +1,57 @@ | |||
| 1 | # - Try to find LibXml2 | ||
| 2 | # Once done this will define | ||
| 3 | # | ||
| 4 | # LIBXML2_FOUND - System has LibXml2 | ||
| 5 | # LIBXML2_INCLUDE_DIR - The LibXml2 include directory | ||
| 6 | # LIBXML2_LIBRARIES - The libraries needed to use LibXml2 | ||
| 7 | # LIBXML2_DEFINITIONS - Compiler switches required for using LibXml2 | ||
| 8 | # LIBXML2_XMLLINT_EXECUTABLE - The XML checking tool xmllint coming with LibXml2 | ||
| 9 | |||
| 10 | # Copyright (c) 2006, Alexander Neundorf, <neundorf@kde.org> | ||
| 11 | # | ||
| 12 | # Redistribution and use is allowed according to the terms of the BSD license. | ||
| 13 | # For details see the accompanying COPYING-CMAKE-SCRIPTS file. | ||
| 14 | |||
| 15 | |||
| 16 | IF (LIBXML2_INCLUDE_DIR AND LIBXML2_LIBRARIES) | ||
| 17 | # in cache already | ||
| 18 | SET(LibXml2_FIND_QUIETLY TRUE) | ||
| 19 | ENDIF (LIBXML2_INCLUDE_DIR AND LIBXML2_LIBRARIES) | ||
| 20 | |||
| 21 | IF (NOT WIN32) | ||
| 22 | # use pkg-config to get the directories and then use these values | ||
| 23 | # in the FIND_PATH() and FIND_LIBRARY() calls | ||
| 24 | FIND_PACKAGE(PkgConfig) | ||
| 25 | PKG_CHECK_MODULES(PC_LIBXML libxml-2.0) | ||
| 26 | SET(LIBXML2_DEFINITIONS ${PC_LIBXML_CFLAGS_OTHER}) | ||
| 27 | ENDIF (NOT WIN32) | ||
| 28 | |||
| 29 | FIND_PATH(LIBXML2_INCLUDE_DIR libxml/xpath.h | ||
| 30 | HINTS | ||
| 31 | ${PC_LIBXML_INCLUDEDIR} | ||
| 32 | ${PC_LIBXML_INCLUDE_DIRS} | ||
| 33 | PATH_SUFFIXES libxml2 | ||
| 34 | ) | ||
| 35 | |||
| 36 | FIND_LIBRARY(LIBXML2_LIBRARIES NAMES xml2 libxml2 | ||
| 37 | HINTS | ||
| 38 | ${PC_LIBXML_LIBDIR} | ||
| 39 | ${PC_LIBXML_LIBRARY_DIRS} | ||
| 40 | ) | ||
| 41 | |||
| 42 | FIND_PROGRAM(LIBXML2_XMLLINT_EXECUTABLE xmllint) | ||
| 43 | # for backwards compat. with KDE 4.0.x: | ||
| 44 | SET(XMLLINT_EXECUTABLE "${LIBXML2_XMLLINT_EXECUTABLE}") | ||
| 45 | |||
| 46 | IF( NOT LIBXML2_XMLLINT_EXECUTABLE ) | ||
| 47 | MESSAGE(STATUS "xmllint program not found. Install it if you want validate generated doc file.") | ||
| 48 | ENDIF(NOT LIBXML2_XMLLINT_EXECUTABLE ) | ||
| 49 | |||
| 50 | |||
| 51 | INCLUDE(FindPackageHandleStandardArgs) | ||
| 52 | |||
| 53 | # handle the QUIETLY and REQUIRED arguments and set LIBXML2_FOUND to TRUE if | ||
| 54 | # all listed variables are TRUE | ||
| 55 | FIND_PACKAGE_HANDLE_STANDARD_ARGS(LibXml2 DEFAULT_MSG LIBXML2_LIBRARIES LIBXML2_INCLUDE_DIR) | ||
| 56 | |||
| 57 | MARK_AS_ADVANCED(LIBXML2_INCLUDE_DIR LIBXML2_LIBRARIES LIBXML2_XMLLINT_EXECUTABLE) | ||
diff --git a/include/CMakeLists.txt b/include/CMakeLists.txt new file mode 100644 index 0000000..8dc7e32 --- /dev/null +++ b/include/CMakeLists.txt | |||
| @@ -0,0 +1,4 @@ | |||
| 1 | |||
| 2 | |||
| 3 | INSTALL( FILES ${CMAKE_CURRENT_SOURCE_DIR}/plist/plist.h | ||
| 4 | DESTINATION include/plist ) | ||
diff --git a/plutil/CMakeLists.txt b/plutil/CMakeLists.txt new file mode 100644 index 0000000..c6dc3f3 --- /dev/null +++ b/plutil/CMakeLists.txt | |||
| @@ -0,0 +1,9 @@ | |||
| 1 | |||
| 2 | SET(plutil_SRC | ||
| 3 | plutil.c) | ||
| 4 | |||
| 5 | ADD_EXECUTABLE(plutil ${plutil_SRC}) | ||
| 6 | TARGET_LINK_LIBRARIES(plutil plist) | ||
| 7 | |||
| 8 | INSTALL( PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/plutil | ||
| 9 | DESTINATION bin ) | ||
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt new file mode 100644 index 0000000..d5e6205 --- /dev/null +++ b/src/CMakeLists.txt | |||
| @@ -0,0 +1,17 @@ | |||
| 1 | |||
| 2 | INCLUDE_DIRECTORIES( ${LIBXML2_INCLUDE_DIR} ${GLIB2_INCLUDE_DIR} ) | ||
| 3 | |||
| 4 | |||
| 5 | SET(libplist_SRC | ||
| 6 | plist.c | ||
| 7 | bplist.c | ||
| 8 | xplist.c ) | ||
| 9 | |||
| 10 | ADD_LIBRARY( plist SHARED ${libplist_SRC} ) | ||
| 11 | TARGET_LINK_LIBRARIES( plist ${LIBXML2_LIBRARIES} ${GLIB2_LIBRARIES} ) | ||
| 12 | |||
| 13 | INSTALL(TARGETS plist | ||
| 14 | RUNTIME DESTINATION bin | ||
| 15 | LIBRARY DESTINATION lib | ||
| 16 | ARCHIVE DESTINATION lib | ||
| 17 | ) | ||
diff --git a/swig/CMakeLists.txt b/swig/CMakeLists.txt new file mode 100644 index 0000000..28d7aed --- /dev/null +++ b/swig/CMakeLists.txt | |||
| @@ -0,0 +1,14 @@ | |||
| 1 | INCLUDE( ${SWIG_USE_FILE} ) | ||
| 2 | |||
| 3 | SET(CMAKE_SWIG_FLAGS -Werror -Wall -modern) | ||
| 4 | |||
| 5 | INCLUDE_DIRECTORIES( ${PYTHON_INCLUDE_PATH} ) | ||
| 6 | |||
| 7 | SWIG_ADD_MODULE( PList python plist.i ) | ||
| 8 | SWIG_LINK_LIBRARIES( PList plist ${PYTHON_LIBRARIES} ) | ||
| 9 | |||
| 10 | INSTALL( FILES ${CMAKE_CURRENT_BINARY_DIR}/_PList${CMAKE_SHARED_MODULE_SUFFIX} | ||
| 11 | DESTINATION ${LIB_INSTALL_DIR}/python${PYTHON_VERSION}/site-packages/ ) | ||
| 12 | INSTALL( FILES ${CMAKE_CURRENT_BINARY_DIR}/__init__.py | ||
| 13 | DESTINATION ${LIB_INSTALL_DIR}/python${PYTHON_VERSION}/site-packages/ ) | ||
| 14 | |||
