changeset 43:f744b9c6aba2

Add installation rules
author Louis Opter <kalessin@kalessin.fr>
date Mon, 22 Mar 2010 16:07:05 +0100
parents 1254fa6755a3
children c76d8ce500cb
files CMakeLists.txt CMakeScripts/CPackDescription.txt CMakeScripts/CPackLicense.txt CMakeScripts/CPackWelcome.txt CMakeScripts/cmake_uninstall.cmake.in README examples/rot13/CMakeLists.txt include/CMakeLists.txt
diffstat 8 files changed, 147 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/CMakeLists.txt	Mon Mar 22 13:46:08 2010 +0100
+++ b/CMakeLists.txt	Mon Mar 22 16:07:05 2010 +0100
@@ -1,4 +1,4 @@
-PROJECT(STREAMIT_API CXX C)
+PROJECT(STREAMIT_API CXX)
 
 CMAKE_MINIMUM_REQUIRED(VERSION 2.4)
 
@@ -9,6 +9,20 @@
     CMAKE_POLICY(SET CMP0003 OLD)
 ENDIF (CMAKE_MAJOR_VERSION GREATER 1 AND CMAKE_MINOR_VERSION GREATER 4)
 
+# Setting vars #################################################################
+
+SET(CPACK_PACKAGE_VERSION_MAJOR "0")
+SET(CPACK_PACKAGE_VERSION_MINOR "0")
+SET(CPACK_PACKAGE_VERSION_PATCH "1")
+SET(STREAMIT_API_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 "Zia Version : ${STREAMIT_API_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 : ${STREAMIT_API_SOURCE_DIR}")
+
 # Global definitions ###########################################################
 
 IF (CMAKE_COMPILER_IS_GNUCXX)
@@ -22,8 +36,67 @@
     ADD_DEFINITIONS("-D_POSIX_C_SOURCE=200112L -D_XOPEN_SOURCE=500")
 ENDIF (CMAKE_SYSTEM_NAME MATCHES "Linux")
 
+IF (MSVC)
+    INCLUDE_DIRECTORIES(${STREAMIT_API_SOURCE_DIR}/compat/)
+    # Avoid crazy warnings about c standard functions.
+    ADD_DEFINITIONS("-D_CRT_SECURE_NO_WARNINGS -DWIN32_LEAN_AND_MEAN")
+ENDIF (MSVC)
+
+# Install rules ################################################################
+
+INSTALL(DIRECTORY examples
+        DESTINATION share/doc/ziastreamit
+        COMPONENT Examples
+        PATTERN "CMakeLists.txt" EXCLUDE
+        REGEX ".*\\.sw.?$" EXCLUDE
+       )
+
+# Uninstall rules ##############################################################
+
+CONFIGURE_FILE("${STREAMIT_API_SOURCE_DIR}/CMakeScripts/cmake_uninstall.cmake.in"
+               "${STREAMIT_API_BINARY_DIR}/cmake_uninstall.cmake"
+               IMMEDIATE @ONLY
+              )
+
+ADD_CUSTOM_TARGET(uninstall
+                  "${CMAKE_COMMAND}" -P "${STREAMIT_API_BINARY_DIR}/cmake_uninstall.cmake"
+                 )
+
 # Subdirectories ###############################################################
 
 INCLUDE_DIRECTORIES(${STREAMIT_API_SOURCE_DIR}/include)
 
 ADD_SUBDIRECTORY(examples)
+ADD_SUBDIRECTORY(include)
+
+# CPack stuff ##################################################################
+
+SET(PACKAGE_NAME "ziastreamit")
+SET(PACKAGE_FILE_NAME "${PACKAGE_NAME}-build-${STREAMIT_API_VERSION}")
+SET(PACKAGE_SOURCE_FILE_NAME "${PACKAGE_NAME}-${STREAMIT_API_VERSION}")
+SET(CPACK_PACKAGE_EXECUTABLES "rot13" "rot13") # <executable> <icon name>
+SET(CPACK_PACKAGE_NAME ${PACKAGE_NAME})
+SET(CPACK_PACKAGE_FILE_NAME ${PACKAGE_NAME})
+SET(CPACK_PACKAGE_DESCRIPTION_FILE "${STREAMIT_API_SOURCE_DIR}/CMakeScripts/CPackDescription.txt")
+SET(CPACK_SOURCE_PACKAGE_FILE_NAME ${PACKAGE_SOURCE_FILE_NAME})
+SET(CPACK_COMPONENTS_ALL Examples Includes)
+SET(CPACK_RESOURCE_FILE_LICENSE "${STREAMIT_API_SOURCE_DIR}/CMakeScripts/CPackLicense.txt")
+SET(CPACK_RESOURCE_FILE_README "${CPACK_PACKAGE_DESCRIPTION_FILE}")
+SET(CPACK_RESOURCE_FILE_WELCOME "${STREAMIT_API_SOURCE_DIR}/CMakeScripts/CPackWelcome.txt")
+SET(CPACK_COMPONENT_EXAMPLES_DISPLAY_NAME "StreamIt API sample code")
+SET(CPACK_COMPONENT_EXAMPLES_DESCRIPTION "Example code for the StreamIt API. It shows how to use our API.")
+SET(CPACK_COMPONENT_EXAMPLES_REQUIRED FALSE)
+SET(CPACK_COMPONENT_INCLUDES_DISPLAY_NAME "StreamIt Development headers")
+SET(CPACK_COMPONENT_INCLUDES_DESCRIPTION "Headers code of our API. This is mandatory to code with the API.")
+SET(CPACK_COMPONENT_INCLUDES_REQUIRED TRUE)
+
+IF (UNIX)
+    SET(CPACK_GENERATOR "TGZ")
+    SET(CPACK_SOURCE_GENERATOR "TGZ")
+ENDIF (UNIX)
+
+IF (WIN32)
+    SET(CPACK_GENERATOR "NSIS")
+ENDIF (WIN32)
+
+INCLUDE(CPack)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/CMakeScripts/CPackDescription.txt	Mon Mar 22 16:07:05 2010 +0100
@@ -0,0 +1,5 @@
+The Zia StreamIt modules API from http://www.ziastream.it/.
+
+You can also contact us at team@ziastream.it.
+
+Follow us on twitter to get updates notifications !
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/CMakeScripts/CPackLicense.txt	Mon Mar 22 16:07:05 2010 +0100
@@ -0,0 +1,11 @@
+Permission to use, copy, modify, and distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/CMakeScripts/CPackWelcome.txt	Mon Mar 22 16:07:05 2010 +0100
@@ -0,0 +1,1 @@
+Welcome on the StreamIt Zia API installer.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/CMakeScripts/cmake_uninstall.cmake.in	Mon Mar 22 16:07:05 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)
--- a/README	Mon Mar 22 13:46:08 2010 +0100
+++ b/README	Mon Mar 22 16:07:05 2010 +0100
@@ -44,3 +44,9 @@
 If you are not on Windows do as in "Build examples" but after make do:
 
 make uninstall
+
+FAQ:
+----
+
+How do I change the install prefix ?
+-> Reconfigure the project with cmake -DCMAKE_INSTALL_PREFIX=/install/prefix/ .
--- a/examples/rot13/CMakeLists.txt	Mon Mar 22 13:46:08 2010 +0100
+++ b/examples/rot13/CMakeLists.txt	Mon Mar 22 16:07:05 2010 +0100
@@ -2,6 +2,14 @@
     main.cpp
     Rot13Module.cpp
     Rot13Handler.cpp
+    # Add headers so they appear into VS
+    Rot13Handler.hpp
+    Rot13Module.hpp
    )
 
 ADD_EXECUTABLE(rot13 ${ROT13_SRC})
+
+INSTALL(TARGETS rot13 RUNTIME
+        DESTINATION bin
+        COMPONENT Examples
+       )
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/include/CMakeLists.txt	Mon Mar 22 16:07:05 2010 +0100
@@ -0,0 +1,22 @@
+SET(SUBDIRECTORIES
+    handler
+    http
+    network
+   )
+
+INSTALL(DIRECTORY ${SUBDIRECTORIES}
+        DESTINATION include/streamit
+        COMPONENT Includes
+        PATTERN "CMakeLists.txt" EXCLUDE
+        REGEX ".*\\.sw.?$" EXCLUDE
+       )
+
+SET(HEADERS
+    IConfig.hpp
+    IModule.hpp
+   )
+
+INSTALL(FILES ${HEADERS}
+        DESTINATION include/streamit
+        COMPONENT Includes
+       )