annotate CMakeLists.txt @ 44:c76d8ce500cb

Update Readme, Fix in-place install, Fix source package generation
author Louis Opter <kalessin@kalessin.fr>
date Mon, 22 Mar 2010 16:50:28 +0100
parents f744b9c6aba2
children ac41a3160348
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
43
f744b9c6aba2 Add installation rules
Louis Opter <kalessin@kalessin.fr>
parents: 41
diff changeset
1 PROJECT(STREAMIT_API CXX)
3
e80935852b9a added .hgignore and CMakeLists.txt
Zoltan K
parents:
diff changeset
2
e80935852b9a added .hgignore and CMakeLists.txt
Zoltan K
parents:
diff changeset
3 CMAKE_MINIMUM_REQUIRED(VERSION 2.4)
e80935852b9a added .hgignore and CMakeLists.txt
Zoltan K
parents:
diff changeset
4
e80935852b9a added .hgignore and CMakeLists.txt
Zoltan K
parents:
diff changeset
5 IF (CMAKE_MAJOR_VERSION GREATER 1 AND CMAKE_MINOR_VERSION GREATER 4)
e80935852b9a added .hgignore and CMakeLists.txt
Zoltan K
parents:
diff changeset
6 # CMP0005 is about escaping stuff in ADD_DEFINITIONS()
e80935852b9a added .hgignore and CMakeLists.txt
Zoltan K
parents:
diff changeset
7 # But, I want to be sure that will works on cmake 2.4
e80935852b9a added .hgignore and CMakeLists.txt
Zoltan K
parents:
diff changeset
8 CMAKE_POLICY(SET CMP0005 OLD)
e80935852b9a added .hgignore and CMakeLists.txt
Zoltan K
parents:
diff changeset
9 CMAKE_POLICY(SET CMP0003 OLD)
e80935852b9a added .hgignore and CMakeLists.txt
Zoltan K
parents:
diff changeset
10 ENDIF (CMAKE_MAJOR_VERSION GREATER 1 AND CMAKE_MINOR_VERSION GREATER 4)
e80935852b9a added .hgignore and CMakeLists.txt
Zoltan K
parents:
diff changeset
11
43
f744b9c6aba2 Add installation rules
Louis Opter <kalessin@kalessin.fr>
parents: 41
diff changeset
12 # Setting vars #################################################################
f744b9c6aba2 Add installation rules
Louis Opter <kalessin@kalessin.fr>
parents: 41
diff changeset
13
f744b9c6aba2 Add installation rules
Louis Opter <kalessin@kalessin.fr>
parents: 41
diff changeset
14 SET(CPACK_PACKAGE_VERSION_MAJOR "0")
f744b9c6aba2 Add installation rules
Louis Opter <kalessin@kalessin.fr>
parents: 41
diff changeset
15 SET(CPACK_PACKAGE_VERSION_MINOR "0")
f744b9c6aba2 Add installation rules
Louis Opter <kalessin@kalessin.fr>
parents: 41
diff changeset
16 SET(CPACK_PACKAGE_VERSION_PATCH "1")
f744b9c6aba2 Add installation rules
Louis Opter <kalessin@kalessin.fr>
parents: 41
diff changeset
17 SET(STREAMIT_API_VERSION "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}")
f744b9c6aba2 Add installation rules
Louis Opter <kalessin@kalessin.fr>
parents: 41
diff changeset
18
f744b9c6aba2 Add installation rules
Louis Opter <kalessin@kalessin.fr>
parents: 41
diff changeset
19 MESSAGE(STATUS "Cmake Version : ${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}.${CMAKE_PATCH_VERSION}")
f744b9c6aba2 Add installation rules
Louis Opter <kalessin@kalessin.fr>
parents: 41
diff changeset
20 MESSAGE(STATUS "Zia Version : ${STREAMIT_API_VERSION}")
f744b9c6aba2 Add installation rules
Louis Opter <kalessin@kalessin.fr>
parents: 41
diff changeset
21 MESSAGE(STATUS "Build Type : ${CMAKE_BUILD_TYPE}")
f744b9c6aba2 Add installation rules
Louis Opter <kalessin@kalessin.fr>
parents: 41
diff changeset
22 MESSAGE(STATUS "System : ${CMAKE_SYSTEM_NAME} ${CMAKE_SYSTEM_VERSION}")
f744b9c6aba2 Add installation rules
Louis Opter <kalessin@kalessin.fr>
parents: 41
diff changeset
23 MESSAGE(STATUS "Install Prefix : ${CMAKE_INSTALL_PREFIX}")
f744b9c6aba2 Add installation rules
Louis Opter <kalessin@kalessin.fr>
parents: 41
diff changeset
24 MESSAGE(STATUS "Source Directory : ${STREAMIT_API_SOURCE_DIR}")
f744b9c6aba2 Add installation rules
Louis Opter <kalessin@kalessin.fr>
parents: 41
diff changeset
25
3
e80935852b9a added .hgignore and CMakeLists.txt
Zoltan K
parents:
diff changeset
26 # Global definitions ###########################################################
e80935852b9a added .hgignore and CMakeLists.txt
Zoltan K
parents:
diff changeset
27
e80935852b9a added .hgignore and CMakeLists.txt
Zoltan K
parents:
diff changeset
28 IF (CMAKE_COMPILER_IS_GNUCXX)
e80935852b9a added .hgignore and CMakeLists.txt
Zoltan K
parents:
diff changeset
29 SET(CMAKE_CXX_FLAGS "-pipe -Wextra -Wall")
e80935852b9a added .hgignore and CMakeLists.txt
Zoltan K
parents:
diff changeset
30 IF (${CMAKE_BUILD_TYPE} MATCHES "DEBUG")
e80935852b9a added .hgignore and CMakeLists.txt
Zoltan K
parents:
diff changeset
31 ADD_DEFINITIONS("-D_GLIBCXX_DEBUG")
e80935852b9a added .hgignore and CMakeLists.txt
Zoltan K
parents:
diff changeset
32 ENDIF (${CMAKE_BUILD_TYPE} MATCHES "DEBUG")
e80935852b9a added .hgignore and CMakeLists.txt
Zoltan K
parents:
diff changeset
33 ENDIF (CMAKE_COMPILER_IS_GNUCXX)
e80935852b9a added .hgignore and CMakeLists.txt
Zoltan K
parents:
diff changeset
34
e80935852b9a added .hgignore and CMakeLists.txt
Zoltan K
parents:
diff changeset
35 IF (CMAKE_SYSTEM_NAME MATCHES "Linux")
e80935852b9a added .hgignore and CMakeLists.txt
Zoltan K
parents:
diff changeset
36 ADD_DEFINITIONS("-D_POSIX_C_SOURCE=200112L -D_XOPEN_SOURCE=500")
e80935852b9a added .hgignore and CMakeLists.txt
Zoltan K
parents:
diff changeset
37 ENDIF (CMAKE_SYSTEM_NAME MATCHES "Linux")
e80935852b9a added .hgignore and CMakeLists.txt
Zoltan K
parents:
diff changeset
38
43
f744b9c6aba2 Add installation rules
Louis Opter <kalessin@kalessin.fr>
parents: 41
diff changeset
39 IF (MSVC)
f744b9c6aba2 Add installation rules
Louis Opter <kalessin@kalessin.fr>
parents: 41
diff changeset
40 INCLUDE_DIRECTORIES(${STREAMIT_API_SOURCE_DIR}/compat/)
f744b9c6aba2 Add installation rules
Louis Opter <kalessin@kalessin.fr>
parents: 41
diff changeset
41 # Avoid crazy warnings about c standard functions.
f744b9c6aba2 Add installation rules
Louis Opter <kalessin@kalessin.fr>
parents: 41
diff changeset
42 ADD_DEFINITIONS("-D_CRT_SECURE_NO_WARNINGS -DWIN32_LEAN_AND_MEAN")
f744b9c6aba2 Add installation rules
Louis Opter <kalessin@kalessin.fr>
parents: 41
diff changeset
43 ENDIF (MSVC)
f744b9c6aba2 Add installation rules
Louis Opter <kalessin@kalessin.fr>
parents: 41
diff changeset
44
f744b9c6aba2 Add installation rules
Louis Opter <kalessin@kalessin.fr>
parents: 41
diff changeset
45 # Install rules ################################################################
f744b9c6aba2 Add installation rules
Louis Opter <kalessin@kalessin.fr>
parents: 41
diff changeset
46
f744b9c6aba2 Add installation rules
Louis Opter <kalessin@kalessin.fr>
parents: 41
diff changeset
47 INSTALL(DIRECTORY examples
44
c76d8ce500cb Update Readme, Fix in-place install, Fix source package generation
Louis Opter <kalessin@kalessin.fr>
parents: 43
diff changeset
48 DESTINATION share/doc/streamit
43
f744b9c6aba2 Add installation rules
Louis Opter <kalessin@kalessin.fr>
parents: 41
diff changeset
49 COMPONENT Examples
f744b9c6aba2 Add installation rules
Louis Opter <kalessin@kalessin.fr>
parents: 41
diff changeset
50 PATTERN "CMakeLists.txt" EXCLUDE
44
c76d8ce500cb Update Readme, Fix in-place install, Fix source package generation
Louis Opter <kalessin@kalessin.fr>
parents: 43
diff changeset
51 PATTERN "CMakeFiles" EXCLUDE
c76d8ce500cb Update Readme, Fix in-place install, Fix source package generation
Louis Opter <kalessin@kalessin.fr>
parents: 43
diff changeset
52 PATTERN "cmake_install.cmake" EXCLUDE
43
f744b9c6aba2 Add installation rules
Louis Opter <kalessin@kalessin.fr>
parents: 41
diff changeset
53 REGEX ".*\\.sw.?$" EXCLUDE
f744b9c6aba2 Add installation rules
Louis Opter <kalessin@kalessin.fr>
parents: 41
diff changeset
54 )
f744b9c6aba2 Add installation rules
Louis Opter <kalessin@kalessin.fr>
parents: 41
diff changeset
55
f744b9c6aba2 Add installation rules
Louis Opter <kalessin@kalessin.fr>
parents: 41
diff changeset
56 # Uninstall rules ##############################################################
f744b9c6aba2 Add installation rules
Louis Opter <kalessin@kalessin.fr>
parents: 41
diff changeset
57
f744b9c6aba2 Add installation rules
Louis Opter <kalessin@kalessin.fr>
parents: 41
diff changeset
58 CONFIGURE_FILE("${STREAMIT_API_SOURCE_DIR}/CMakeScripts/cmake_uninstall.cmake.in"
f744b9c6aba2 Add installation rules
Louis Opter <kalessin@kalessin.fr>
parents: 41
diff changeset
59 "${STREAMIT_API_BINARY_DIR}/cmake_uninstall.cmake"
f744b9c6aba2 Add installation rules
Louis Opter <kalessin@kalessin.fr>
parents: 41
diff changeset
60 IMMEDIATE @ONLY
f744b9c6aba2 Add installation rules
Louis Opter <kalessin@kalessin.fr>
parents: 41
diff changeset
61 )
f744b9c6aba2 Add installation rules
Louis Opter <kalessin@kalessin.fr>
parents: 41
diff changeset
62
f744b9c6aba2 Add installation rules
Louis Opter <kalessin@kalessin.fr>
parents: 41
diff changeset
63 ADD_CUSTOM_TARGET(uninstall
f744b9c6aba2 Add installation rules
Louis Opter <kalessin@kalessin.fr>
parents: 41
diff changeset
64 "${CMAKE_COMMAND}" -P "${STREAMIT_API_BINARY_DIR}/cmake_uninstall.cmake"
f744b9c6aba2 Add installation rules
Louis Opter <kalessin@kalessin.fr>
parents: 41
diff changeset
65 )
f744b9c6aba2 Add installation rules
Louis Opter <kalessin@kalessin.fr>
parents: 41
diff changeset
66
3
e80935852b9a added .hgignore and CMakeLists.txt
Zoltan K
parents:
diff changeset
67 # Subdirectories ###############################################################
e80935852b9a added .hgignore and CMakeLists.txt
Zoltan K
parents:
diff changeset
68
e80935852b9a added .hgignore and CMakeLists.txt
Zoltan K
parents:
diff changeset
69 INCLUDE_DIRECTORIES(${STREAMIT_API_SOURCE_DIR}/include)
e80935852b9a added .hgignore and CMakeLists.txt
Zoltan K
parents:
diff changeset
70
e80935852b9a added .hgignore and CMakeLists.txt
Zoltan K
parents:
diff changeset
71 ADD_SUBDIRECTORY(examples)
43
f744b9c6aba2 Add installation rules
Louis Opter <kalessin@kalessin.fr>
parents: 41
diff changeset
72 ADD_SUBDIRECTORY(include)
f744b9c6aba2 Add installation rules
Louis Opter <kalessin@kalessin.fr>
parents: 41
diff changeset
73
f744b9c6aba2 Add installation rules
Louis Opter <kalessin@kalessin.fr>
parents: 41
diff changeset
74 # CPack stuff ##################################################################
f744b9c6aba2 Add installation rules
Louis Opter <kalessin@kalessin.fr>
parents: 41
diff changeset
75
44
c76d8ce500cb Update Readme, Fix in-place install, Fix source package generation
Louis Opter <kalessin@kalessin.fr>
parents: 43
diff changeset
76 SET(PACKAGE_NAME "StreamIt-${STREAMIT_API_VERSION}")
c76d8ce500cb Update Readme, Fix in-place install, Fix source package generation
Louis Opter <kalessin@kalessin.fr>
parents: 43
diff changeset
77 SET(PACKAGE_FILE_NAME ${PACKAGE_NAME})
c76d8ce500cb Update Readme, Fix in-place install, Fix source package generation
Louis Opter <kalessin@kalessin.fr>
parents: 43
diff changeset
78 SET(PACKAGE_SOURCE_FILE_NAME "Sources-${PACKAGE_NAME}")
43
f744b9c6aba2 Add installation rules
Louis Opter <kalessin@kalessin.fr>
parents: 41
diff changeset
79 SET(CPACK_PACKAGE_EXECUTABLES "rot13" "rot13") # <executable> <icon name>
f744b9c6aba2 Add installation rules
Louis Opter <kalessin@kalessin.fr>
parents: 41
diff changeset
80 SET(CPACK_PACKAGE_NAME ${PACKAGE_NAME})
f744b9c6aba2 Add installation rules
Louis Opter <kalessin@kalessin.fr>
parents: 41
diff changeset
81 SET(CPACK_PACKAGE_FILE_NAME ${PACKAGE_NAME})
f744b9c6aba2 Add installation rules
Louis Opter <kalessin@kalessin.fr>
parents: 41
diff changeset
82 SET(CPACK_PACKAGE_DESCRIPTION_FILE "${STREAMIT_API_SOURCE_DIR}/CMakeScripts/CPackDescription.txt")
f744b9c6aba2 Add installation rules
Louis Opter <kalessin@kalessin.fr>
parents: 41
diff changeset
83 SET(CPACK_SOURCE_PACKAGE_FILE_NAME ${PACKAGE_SOURCE_FILE_NAME})
44
c76d8ce500cb Update Readme, Fix in-place install, Fix source package generation
Louis Opter <kalessin@kalessin.fr>
parents: 43
diff changeset
84 SET(CPACK_SOURCE_IGNORE_FILES "/\\\\.hg/" "/doc/" ".*\\\\.sw.?$" "\\\\.hgignore")
43
f744b9c6aba2 Add installation rules
Louis Opter <kalessin@kalessin.fr>
parents: 41
diff changeset
85 SET(CPACK_COMPONENTS_ALL Examples Includes)
f744b9c6aba2 Add installation rules
Louis Opter <kalessin@kalessin.fr>
parents: 41
diff changeset
86 SET(CPACK_RESOURCE_FILE_LICENSE "${STREAMIT_API_SOURCE_DIR}/CMakeScripts/CPackLicense.txt")
f744b9c6aba2 Add installation rules
Louis Opter <kalessin@kalessin.fr>
parents: 41
diff changeset
87 SET(CPACK_RESOURCE_FILE_README "${CPACK_PACKAGE_DESCRIPTION_FILE}")
f744b9c6aba2 Add installation rules
Louis Opter <kalessin@kalessin.fr>
parents: 41
diff changeset
88 SET(CPACK_RESOURCE_FILE_WELCOME "${STREAMIT_API_SOURCE_DIR}/CMakeScripts/CPackWelcome.txt")
f744b9c6aba2 Add installation rules
Louis Opter <kalessin@kalessin.fr>
parents: 41
diff changeset
89 SET(CPACK_COMPONENT_EXAMPLES_DISPLAY_NAME "StreamIt API sample code")
f744b9c6aba2 Add installation rules
Louis Opter <kalessin@kalessin.fr>
parents: 41
diff changeset
90 SET(CPACK_COMPONENT_EXAMPLES_DESCRIPTION "Example code for the StreamIt API. It shows how to use our API.")
f744b9c6aba2 Add installation rules
Louis Opter <kalessin@kalessin.fr>
parents: 41
diff changeset
91 SET(CPACK_COMPONENT_EXAMPLES_REQUIRED FALSE)
f744b9c6aba2 Add installation rules
Louis Opter <kalessin@kalessin.fr>
parents: 41
diff changeset
92 SET(CPACK_COMPONENT_INCLUDES_DISPLAY_NAME "StreamIt Development headers")
f744b9c6aba2 Add installation rules
Louis Opter <kalessin@kalessin.fr>
parents: 41
diff changeset
93 SET(CPACK_COMPONENT_INCLUDES_DESCRIPTION "Headers code of our API. This is mandatory to code with the API.")
f744b9c6aba2 Add installation rules
Louis Opter <kalessin@kalessin.fr>
parents: 41
diff changeset
94 SET(CPACK_COMPONENT_INCLUDES_REQUIRED TRUE)
f744b9c6aba2 Add installation rules
Louis Opter <kalessin@kalessin.fr>
parents: 41
diff changeset
95
f744b9c6aba2 Add installation rules
Louis Opter <kalessin@kalessin.fr>
parents: 41
diff changeset
96 IF (UNIX)
f744b9c6aba2 Add installation rules
Louis Opter <kalessin@kalessin.fr>
parents: 41
diff changeset
97 SET(CPACK_GENERATOR "TGZ")
f744b9c6aba2 Add installation rules
Louis Opter <kalessin@kalessin.fr>
parents: 41
diff changeset
98 SET(CPACK_SOURCE_GENERATOR "TGZ")
f744b9c6aba2 Add installation rules
Louis Opter <kalessin@kalessin.fr>
parents: 41
diff changeset
99 ENDIF (UNIX)
f744b9c6aba2 Add installation rules
Louis Opter <kalessin@kalessin.fr>
parents: 41
diff changeset
100
f744b9c6aba2 Add installation rules
Louis Opter <kalessin@kalessin.fr>
parents: 41
diff changeset
101 IF (WIN32)
f744b9c6aba2 Add installation rules
Louis Opter <kalessin@kalessin.fr>
parents: 41
diff changeset
102 SET(CPACK_GENERATOR "NSIS")
f744b9c6aba2 Add installation rules
Louis Opter <kalessin@kalessin.fr>
parents: 41
diff changeset
103 ENDIF (WIN32)
f744b9c6aba2 Add installation rules
Louis Opter <kalessin@kalessin.fr>
parents: 41
diff changeset
104
f744b9c6aba2 Add installation rules
Louis Opter <kalessin@kalessin.fr>
parents: 41
diff changeset
105 INCLUDE(CPack)