summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Jonathan Beck2009-03-27 18:43:46 +0100
committerGravatar Jonathan Beck2009-03-27 18:43:46 +0100
commitc99881e673b58efba240d6b9440768eace28b027 (patch)
tree16d521218a1a97ed726c9402229fd51341fe7745
parent623314bb8de2a6ac71e44833d1f1a796274d3871 (diff)
downloadlibplist-c99881e673b58efba240d6b9440768eace28b027.tar.gz
libplist-c99881e673b58efba240d6b9440768eace28b027.tar.bz2
Complete and cleanup CMake build system.
-rw-r--r--CMakeLists.txt31
-rw-r--r--cmake/libplistPackaging.cmake15
-rw-r--r--cmake/modules/cmake_uninstall.cmake.in21
-rw-r--r--libplist.pc.in14
-rw-r--r--plutil/CMakeLists.txt1
-rw-r--r--src/CMakeLists.txt2
6 files changed, 63 insertions, 21 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 201a14e..754c264 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,5 +1,12 @@
1PROJECT( libplist ) 1PROJECT( libplist )
2 2
3SET( LIBPLIST_VERSION_MAJOR "0" )
4SET( LIBPLIST_VERSION_MINOR "8" )
5SET( LIBPLIST_SOVERSION "0" )
6SET( LIBPLIST_VERSION "${LIBPLIST_VERSION_MAJOR}.${LIBPLIST_VERSION_MINOR}" )
7SET( LIBPLIST_LIBVERSION "${LIBPLIST_SOVERSION}.${LIBPLIST_VERSION}" )
8SET( PLUTIL_VERSION ${LIBPLIST_VERSION} )
9
3SET( CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake ${CMAKE_SOURCE_DIR}/cmake/modules ) 10SET( CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake ${CMAKE_SOURCE_DIR}/cmake/modules )
4 11
5cmake_minimum_required(VERSION 2.6) 12cmake_minimum_required(VERSION 2.6)
@@ -22,19 +29,15 @@ IF ( SWIG_FOUND AND PYTHON_LIBRARY )
22 ADD_SUBDIRECTORY( swig ) 29 ADD_SUBDIRECTORY( swig )
23ENDIF ( SWIG_FOUND AND PYTHON_LIBRARY ) 30ENDIF ( SWIG_FOUND AND PYTHON_LIBRARY )
24 31
25CONFIGURE_FILE( "libplist.pc.in" "${CMAKE_CURRENT_BINARY_DIR}/libplist.pc" ) 32# add uninstall target
26 33CONFIGURE_FILE( "${CMAKE_SOURCE_DIR}/cmake/modules/cmake_uninstall.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake" IMMEDIATE @ONLY)
34ADD_CUSTOM_TARGET(uninstall "${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake")
27 35
28SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Library to parse and generate Apple's binary and XML PList format") 36########## PkgConfig ############################
29SET(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README") 37CONFIGURE_FILE( "libplist.pc.in" "${CMAKE_CURRENT_BINARY_DIR}/libplist.pc" )
30SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/COPYING.LESSER") 38########## INSTALL ##############################
31SET(CPACK_PACKAGE_VERSION_MAJOR "0") 39INSTALL( FILES "${CMAKE_CURRENT_BINARY_DIR}/libplist.pc" DESTINATION ${LIBDATA_INSTALL_DIR}/pkgconfig/ )
32SET(CPACK_PACKAGE_VERSION_MINOR "1")
33SET(CPACK_PACKAGE_VERSION_PATCH "0")
34SET(CPACK_COMPONENT_LIB_DISPLAY_NAME "PList library")
35SET(CPACK_COMPONENT_DEV_DISPLAY_NAME "PList development files")
36SET(CPACK_COMPONENT_PLUTIL_DISPLAY_NAME "PList conversion tool")
37set(CPACK_COMPONENT_DEV_DEPENDS lib)
38set(CPACK_COMPONENT_PLUTIL_DEPENDS lib)
39INCLUDE(CPack)
40 40
41########## CPack ################################
42INCLUDE( libplistPackaging )
43LIBPLIST_PACKAGE(LIBPLIST_VERSION_MAJOR LIBPLIST_VERSION_MINOR)
diff --git a/cmake/libplistPackaging.cmake b/cmake/libplistPackaging.cmake
new file mode 100644
index 0000000..1a5fd92
--- /dev/null
+++ b/cmake/libplistPackaging.cmake
@@ -0,0 +1,15 @@
1MACRO( LIBPLIST_PACKAGE _major _minor)
2
3 SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Library to parse and generate Apple's binary and XML PList format")
4 SET(CPACK_PACKAGE_VERSION_MAJOR ${_major})
5 SET(CPACK_PACKAGE_VERSION_MINOR ${_minor})
6 SET(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README")
7 SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/COPYING.LESSER")
8 SET(CPACK_COMPONENT_LIB_DISPLAY_NAME "PList library")
9 SET(CPACK_COMPONENT_DEV_DISPLAY_NAME "PList development files")
10 SET(CPACK_COMPONENT_PLUTIL_DISPLAY_NAME "PList conversion tool")
11 set(CPACK_COMPONENT_DEV_DEPENDS lib)
12 set(CPACK_COMPONENT_PLUTIL_DEPENDS lib)
13 INCLUDE( CPack )
14
15ENDMACRO( LIBPLIST_PACKAGE )
diff --git a/cmake/modules/cmake_uninstall.cmake.in b/cmake/modules/cmake_uninstall.cmake.in
new file mode 100644
index 0000000..4bfb0bf
--- /dev/null
+++ b/cmake/modules/cmake_uninstall.cmake.in
@@ -0,0 +1,21 @@
1IF(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt")
2 MESSAGE(FATAL_ERROR "Cannot find install manifest: \"@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt\"")
3ENDIF(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt")
4
5FILE(READ "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt" files)
6STRING(REGEX REPLACE "\n" ";" files "${files}")
7FOREACH(file ${files})
8 MESSAGE(STATUS "Uninstalling \"$ENV{DESTDIR}${file}\"")
9 IF(EXISTS "$ENV{DESTDIR}${file}")
10 EXEC_PROGRAM(
11 "@CMAKE_COMMAND@" ARGS "-E remove \"$ENV{DESTDIR}${file}\""
12 OUTPUT_VARIABLE rm_out
13 RETURN_VALUE rm_retval
14 )
15 IF(NOT "${rm_retval}" STREQUAL 0)
16 MESSAGE(FATAL_ERROR "Problem when removing \"$ENV{DESTDIR}${file}\"")
17 ENDIF(NOT "${rm_retval}" STREQUAL 0)
18 ELSE(EXISTS "$ENV{DESTDIR}${file}")
19 MESSAGE(STATUS "File \"$ENV{DESTDIR}${file}\" does not exist.")
20 ENDIF(EXISTS "$ENV{DESTDIR}${file}")
21ENDFOREACH(file)
diff --git a/libplist.pc.in b/libplist.pc.in
index 34110e3..c59db5a 100644
--- a/libplist.pc.in
+++ b/libplist.pc.in
@@ -1,12 +1,12 @@
1prefix=@prefix@ 1prefix=${CMAKE_INSTALL_PREFIX}
2exec_prefix=@exec_prefix@ 2exec_prefix=${CMAKE_INSTALL_PREFIX}
3libdir=@libdir@ 3libdir=${CMAKE_INSTALL_PREFIX}/lib
4includedir=@includedir@ 4includedir=${CMAKE_INSTALL_PREFIX}/include
5 5
6Name: libplist 6Name: libplist
7Description: A library to handle Apple Property Lists whereas they are binary or XML 7Description: A library to handle Apple Property Lists whereas they are binary or XML
8Version: @VERSION@ 8Version: ${LIBPLIST_VERSION}
9Requires: libxml-2.0 >= 2.6.30 glib-2.0 >= 2.14.1 9Requires: libxml-2.0 >= 2.6.30 glib-2.0 >= 2.14.1
10Libs: -L${libdir} -lplist 10Libs: -L${CMAKE_INSTALL_PREFIX}/lib -lplist
11Cflags: -I${includedir} 11Cflags: -I${CMAKE_INSTALL_PREFIX}/include
12 12
diff --git a/plutil/CMakeLists.txt b/plutil/CMakeLists.txt
index fad1cde..149d68f 100644
--- a/plutil/CMakeLists.txt
+++ b/plutil/CMakeLists.txt
@@ -4,5 +4,6 @@ SET(plutil_SRC
4 4
5ADD_EXECUTABLE(plutil ${plutil_SRC}) 5ADD_EXECUTABLE(plutil ${plutil_SRC})
6TARGET_LINK_LIBRARIES(plutil plist) 6TARGET_LINK_LIBRARIES(plutil plist)
7SET_TARGET_PROPERTIES( plutil PROPERTIES VERSION ${PLUTIL_VERSION} )
7 8
8INSTALL( TARGETS plutil RUNTIME DESTINATION bin COMPONENT plutil ) \ No newline at end of file 9INSTALL( TARGETS plutil RUNTIME DESTINATION bin COMPONENT plutil ) \ No newline at end of file
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 8a79c22..4c0f843 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -9,6 +9,8 @@ SET(libplist_SRC
9 9
10ADD_LIBRARY( plist SHARED ${libplist_SRC} ) 10ADD_LIBRARY( plist SHARED ${libplist_SRC} )
11TARGET_LINK_LIBRARIES( plist ${LIBXML2_LIBRARIES} ${GLIB2_LIBRARIES} ) 11TARGET_LINK_LIBRARIES( plist ${LIBXML2_LIBRARIES} ${GLIB2_LIBRARIES} )
12SET_TARGET_PROPERTIES( plist PROPERTIES VERSION ${LIBPLIST_LIBVERSION} )
13SET_TARGET_PROPERTIES( plist PROPERTIES SOVERSION ${LIBPLIST_SOVERSION} )
12 14
13INSTALL(TARGETS plist 15INSTALL(TARGETS plist
14 RUNTIME DESTINATION bin COMPONENT lib 16 RUNTIME DESTINATION bin COMPONENT lib