# HG changeset patch # User Louis Opter # Date 1269270425 -3600 # Node ID f744b9c6aba2af0f6752c4e9c77a3b2da1f74c36 # Parent 1254fa6755a3cf0b6ddd459c662e229d49cabb46 Add installation rules diff -r 1254fa6755a3 -r f744b9c6aba2 CMakeLists.txt --- 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") # +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) diff -r 1254fa6755a3 -r f744b9c6aba2 CMakeScripts/CPackDescription.txt --- /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 ! diff -r 1254fa6755a3 -r f744b9c6aba2 CMakeScripts/CPackLicense.txt --- /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. diff -r 1254fa6755a3 -r f744b9c6aba2 CMakeScripts/CPackWelcome.txt --- /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. diff -r 1254fa6755a3 -r f744b9c6aba2 CMakeScripts/cmake_uninstall.cmake.in --- /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) diff -r 1254fa6755a3 -r f744b9c6aba2 README --- 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/ . diff -r 1254fa6755a3 -r f744b9c6aba2 examples/rot13/CMakeLists.txt --- 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 + ) diff -r 1254fa6755a3 -r f744b9c6aba2 include/CMakeLists.txt --- /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 + )