view CMakeLists.txt @ 100:5c04b2194ec2 default tip

Tag Version 0.0.4
author daedric <d43dr1c@gmail.com>
date Fri, 23 Apr 2010 18:24:30 +0200
parents 5f69de9accb6
children
line wrap: on
line source

PROJECT(STREAMIT_API CXX)

CMAKE_MINIMUM_REQUIRED(VERSION 2.4)

IF (CMAKE_MAJOR_VERSION GREATER 1 AND CMAKE_MINOR_VERSION GREATER 4)
    # CMP0005 is about escaping stuff in ADD_DEFINITIONS()
    # But, I want to be sure that will works on cmake 2.4
    CMAKE_POLICY(SET CMP0005 OLD)
    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 "4")
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 "StreamIt API 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}")

ENABLE_TESTING()

# Global definitions ###########################################################

IF (CMAKE_COMPILER_IS_GNUCXX)
    SET(CMAKE_CXX_FLAGS "-pipe -Wextra -Wall")
    IF (${CMAKE_BUILD_TYPE} MATCHES "DEBUG")
        ADD_DEFINITIONS("-D_GLIBCXX_DEBUG")
    ENDIF (${CMAKE_BUILD_TYPE} MATCHES "DEBUG")
ENDIF (CMAKE_COMPILER_IS_GNUCXX)

IF (CMAKE_SYSTEM_NAME MATCHES "Linux")
    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/streamit
        COMPONENT Examples
        FILES_MATCHING
        REGEX "[hc]pp$"
        REGEX "CMakeFiles" 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)
ADD_SUBDIRECTORY(tests)

# CPack stuff ##################################################################

SET(PACKAGE_NAME "StreamIt")
SET(IGNORE_PATTERNS
    "/\\\\.hg.*"
    "/doc/"
    ".*\\\\.sw.?$"
    "/CMakeFiles/"
    "CMakeCache.txt"
    ".*install.*\\\\.(cmake|txt)$"
    ".*(Makefile|CTest).*"
    ".*${PACKAGE_NAME}[^/]*"
    ".*CPack.*([^t][^x][^t])$"
    "/Test_.*/"
   )
SET(PACKAGE_FILE_NAME "${PACKAGE_NAME}-${STREAMIT_API_VERSION}")
SET(PACKAGE_SOURCE_FILE_NAME "Sources-${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_SOURCE_IGNORE_FILES ${IGNORE_PATTERNS})
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_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")
    SET(CPACK_SOURCE_GENERATOR "ZIP")
ENDIF (WIN32)

INCLUDE(CPack)