# HG changeset patch # User Louis Opter # Date 1293731314 -3600 # Node ID 3e30c3b2d6dab8b6ffcca88b7fb145c34d4e4ba5 # Parent 6ce4443e75455b96265269823f848a55dfd3494c Add install/uninstall rules diff -r 6ce4443e7545 -r 3e30c3b2d6da CMakeLists.txt --- a/CMakeLists.txt Wed Dec 29 23:28:14 2010 +0100 +++ b/CMakeLists.txt Thu Dec 30 18:48:34 2010 +0100 @@ -1,7 +1,21 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.6) +# Global definitions ########################################################### + PROJECT(LIBLXCSTATS C) +SET(CPACK_PACKAGE_VERSION_MAJOR "0") +SET(CPACK_PACKAGE_VERSION_MINOR "0") +SET(CPACK_PACKAGE_VERSION_PATCH "1") +SET(LIBLXCSTATS_VERSION "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}") + +MESSAGE(STATUS "CMake Version: ${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}.${CMAKE_PATCH_VERSION}") +MESSAGE(STATUS "liblxcstats Version: ${LIBLXCSTATS_VERSION}") +MESSAGE(STATUS "Build Type: ${CMAKE_BUILD_TYPE}") +MESSAGE(STATUS "System: ${CMAKE_SYSTEM_NAME} ${CMAKE_SYSTEM_VERSION}") +MESSAGE(STATUS "Install Prefix: ${CMAKE_INSTALL_PREFIX}") +MESSAGE(STATUS "Source Directory: ${LIBLXCSTATS_SOURCE_DIR}") + ENABLE_TESTING() IF (CMAKE_COMPILER_IS_GNUCC) @@ -14,6 +28,8 @@ MESSAGE(SEND_ERROR "The liblxcstats is Linux specific.") ENDIF (CMAKE_SYSTEM_NAME MATCHES "Linux") +# Build rules ################################################################## + SET(SRC compat/strlcpy.c compat/strlcat.c @@ -29,5 +45,20 @@ TARGET_LINK_LIBRARIES(lxcstats probes) +# Install/Uninstall rules ###################################################### + +INSTALL(TARGETS lxcstats LIBRARY DESTINATION lib) + +CONFIGURE_FILE("${LIBLXCSTATS_SOURCE_DIR}/CMakeScripts/cmake_uninstall.cmake.in" + "${LIBLXCSTATS_BINARY_DIR}/cmake_uninstall.cmake" + IMMEDIATE @ONLY + ) + +ADD_CUSTOM_TARGET(uninstall + "${CMAKE_COMMAND}" -P "${LIBLXCSTATS_BINARY_DIR}/cmake_uninstall.cmake" + ) + +# Subdirectories ############################################################### + ADD_SUBDIRECTORY(tests) ADD_SUBDIRECTORY(probes) diff -r 6ce4443e7545 -r 3e30c3b2d6da CMakeScripts/cmake_uninstall.cmake.in --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/CMakeScripts/cmake_uninstall.cmake.in Thu Dec 30 18:48:34 2010 +0100 @@ -0,0 +1,20 @@ +IF(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt") + MESSAGE(FATAL_ERROR "Cannot find install manifest: \"@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt\"") +ENDIF(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt") + +FILE(READ "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt" files) +STRING(REGEX REPLACE "\n" ";" files "${files}") +FOREACH(file ${files}) + MESSAGE(STATUS "Uninstalling \"$ENV{DESTDIR}${file}\"") + IF(EXISTS "$ENV{DESTDIR}${file}") + EXEC_PROGRAM("@CMAKE_COMMAND@" ARGS "-E remove \"$ENV{DESTDIR}${file}\"" + OUTPUT_VARIABLE rm_out + RETURN_VALUE rm_retval + ) + IF(NOT "${rm_retval}" STREQUAL 0) + MESSAGE(FATAL_ERROR "Problem when removing \"$ENV{DESTDIR}${file}\"") + ENDIF(NOT "${rm_retval}" STREQUAL 0) + ELSE(EXISTS "$ENV{DESTDIR}${file}") + MESSAGE(STATUS "File \"$ENV{DESTDIR}${file}\" does not exist.") + ENDIF(EXISTS "$ENV{DESTDIR}${file}") +ENDFOREACH(file)