diff --git a/CMakeLists.txt b/CMakeLists.txt index 9025aa719..89b631793 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,8 +1,7 @@ # # Test CMake version # -CMAKE_MINIMUM_REQUIRED(VERSION 2.2) -#MARK_AS_ADVANCED( FORCE CMAKE_BACKWARDS_COMPATIBILITY ) +CMAKE_MINIMUM_REQUIRED(VERSION 2.6) # for CMake 2.6 corrected behaviour (see "cmake --help-policy CMP0003") IF(COMMAND cmake_policy AND ${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} GREATER 4) @@ -17,7 +16,7 @@ ENDIF(COMMAND cmake_policy AND ${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_ PROJECT(orocos-rtt) -SET( RTT_VERSION 1.6.99 ) +SET( RTT_VERSION 2.0.0 ) STRING( REGEX MATCHALL "[0-9]+" RTT_VERSIONS ${RTT_VERSION} ) LIST( GET RTT_VERSIONS 0 RTT_VERSION_MAJOR) LIST( GET RTT_VERSIONS 1 RTT_VERSION_MINOR) @@ -25,44 +24,19 @@ LIST( GET RTT_VERSIONS 2 RTT_VERSION_PATCH) MESSAGE( "Orocos RTT version ${VERSION} (${RTT_VERSION_MAJOR}.${RTT_VERSION_MINOR}.${RTT_VERSION_PATCH})" ) -# Do not rely on environment variables to find the path, because that's confusing -IF(NOT CMAKE_INSTALL_PREFIX) - SET( CMAKE_INSTALL_PREFIX /usr/local CACHE PATH "Installation directory" FORCE) - MESSAGE( STATUS "Setting installation directory to ${CMAKE_INSTALL_PREFIX}" ) -ENDIF(NOT CMAKE_INSTALL_PREFIX) - SET( PROJ_SOURCE_DIR ${orocos-rtt_SOURCE_DIR} ) SET( PROJ_BINARY_DIR ${orocos-rtt_BINARY_DIR} ) -# Set the default build type to debug. -# -# Set the build type (affects debugging symbols and optimization) -# -IF ( NOT CMAKE_BUILD_TYPE ) - SET( CMAKE_BUILD_TYPE "RTT" CACHE STRING "Build type: None (Use CMAKE_C_FLAGS and CMAKE_CXX_FLAGS), RTT (Recommended), Release, Debug, RelWithDebInfo, MinSizeRel." FORCE ) - MESSAGE( "Setting build type to '${CMAKE_BUILD_TYPE}'" ) - SET( CMAKE_C_FLAGS_RTT "-O2 -DNDEBUG" CACHE STRING "The CFLAGS for RTT" ) - SET( CMAKE_CXX_FLAGS_RTT "-O2 -DNDEBUG" CACHE STRING "The CXXFLAGS flags for RTT" ) -ELSE ( NOT CMAKE_BUILD_TYPE ) - MESSAGE( "Build type set to '${CMAKE_BUILD_TYPE}' by user." ) - IF ( NOT CMAKE_BUILD_TYPE STREQUAL "RTT" ) - MARK_AS_ADVANCED(FORCE CMAKE_C_FLAGS_RTT CMAKE_CXX_FLAGS_RTT) - ELSE ( NOT CMAKE_BUILD_TYPE STREQUAL "RTT" ) - MARK_AS_ADVANCED(CLEAR CMAKE_C_FLAGS_RTT CMAKE_CXX_FLAGS_RTT) - ENDIF ( NOT CMAKE_BUILD_TYPE STREQUAL "RTT" ) - -ENDIF ( NOT CMAKE_BUILD_TYPE ) - #Use these variables to store build-local flags. #They are used when the targets are configured. IF ( NOT CMAKE_BUILD_TYPE STREQUAL "None") - SET ( CMAKE_CXX_FLAGS_ADD "${CMAKE_CXX_FLAGS}" CACHE STRING "Specify here your additional flags.") - SET ( CMAKE_C_FLAGS_ADD "${CMAKE_C_FLAGS}" CACHE STRING "Specify here your additional flags.") + SET ( CMAKE_CXX_FLAGS_ADD "${CMAKE_CXX_FLAGS}" CACHE STRING "Specify here your additional C++ flags.") + SET ( CMAKE_C_FLAGS_ADD "${CMAKE_C_FLAGS}" CACHE STRING "Specify here your additional C flags.") + SET ( CMAKE_LD_FLAGS_ADD "${CMAKE_LD_FLAGS}" CACHE STRING "Specify here your additional link flags.") ENDIF ( NOT CMAKE_BUILD_TYPE STREQUAL "None") - # Make compilation verbose -#SET(CMAKE_VERBOSE_MAKEFILE TRUE) +SET(CMAKE_VERBOSE_MAKEFILE TRUE) ################################################### # # @@ -70,16 +44,6 @@ ENDIF ( NOT CMAKE_BUILD_TYPE STREQUAL "None") # # ################################################### -# -# Set the build type (affects debugging symbols and optimization) -# -IF ( NOT CMAKE_BUILD_TYPE ) - SET( CMAKE_BUILD_TYPE Release ) - MESSAGE( STATUS "Setting build type to '${CMAKE_BUILD_TYPE}'" ) -ELSE ( NOT CMAKE_BUILD_TYPE ) - MESSAGE( STATUS "Build type set to '${CMAKE_BUILD_TYPE}' by user." ) -ENDIF ( NOT CMAKE_BUILD_TYPE ) - # MESSAGE("Looking for compiler:") INCLUDE (${CMAKE_ROOT}/Modules/CMakeDetermineCXXCompiler.cmake) @@ -97,7 +61,11 @@ SET( RTT_CFLAGS "" CACHE INTERNAL "") SET( RTT_LINKFLAGS "" CACHE INTERNAL "") SET( RTT_USER_LINKFLAGS "" CACHE INTERNAL "") +# Find all installed libraries, compiler etc. INCLUDE(config/check_depend.cmake) + +# Decide how we will build using the user options and +# build environment INCLUDE(config/global_setup.cmake) ## Uninstall target @@ -109,75 +77,18 @@ CONFIGURE_FILE( ADD_CUSTOM_TARGET(uninstall "${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake") -########################################################### -# # -# Look for dependencies required by individual components # -# # -########################################################### - INCLUDE(config/rtt_macros.cmake) ########################################################### # # -# Create build # +# Visit subdirs # # # ########################################################### -ADD_DEFINITIONS( "-Wall" ) -INCLUDE_DIRECTORIES(${PROJ_SOURCE_DIR}/src ${PROJ_BINARY_DIR}/src ${PROJ_BINARY_DIR}/src/os ${PROJ_BINARY_DIR}/src/os/${OROCOS_TARGET}) -#INCLUDE_DIRECTORIES(${PROJ_SOURCE_DIR}/src ${PROJ_BINARY_DIR}/src ${PROJ_BINARY_DIR}/src/os) ADD_SUBDIRECTORY(src) ADD_SUBDIRECTORY(doc) ADD_SUBDIRECTORY(tests) -#CONFIGURE_FILE( orocos-rtt.pc.in orocos-rtt-${OROCOS_TARGET}.pc @ONLY) -#INSTALL_FILES( /lib/pkgconfig FILES orocos-rtt-${OROCOS_TARGET}.pc) - -############################################################ -## # -## Setup PACKAGING # -## # -############################################################ - -IF ( "${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" STREQUAL "2.4" ) -OPTION( CPACK_PACKAGES "Set to ON to build the packages. Requires cmake >2.4" OFF ) -IF (CPACK_PACKAGES) - -INCLUDE(InstallRequiredSystemLibraries) - -# ATTENTION: There is sometimes a _SOURCE_ version of an -# option as well, set both if necessary ! - -# Create .tar.gz and .tar.tbz2 files: -SET(CPACK_GENERATOR "TBZ2") -SET(CPACK_SOURCE_GENERATOR "TBZ2") - -# The plain 'package' target works correctly. -SET(CPACK_IGNORE_FILES "/CVS/;/.svn/;.swp$;.#;/#;/build/") -# Since the 'package_source' target does a bold copy, define a list of -# files which should be excluded. Note that 'subpattern' matching is used, -# thus to exclude a directory use /mydir/ -SET(CPACK_SOURCE_IGNORE_FILES "/CVS/;/.svn/;.swp$;.#;/#;/build/;~") - -SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Orocos RTT") -SET(CPACK_PACKAGE_VENDOR "The Orocos Community") -SET(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README") -SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/COPYING") -SET(CPACK_PACKAGE_MAJOR_VERSION RTT_VERSION_MAJOR) -SET(CPACK_PACKAGE_MINOR_VERSION RTT_VERSION_MINOR) -SET(CPACK_PACKAGE_VERSION_PATCH RTT_VERSION_PATCH) -SET(CPACK_PACKAGE_INSTALL_DIRECTORY "CMAKE ${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}") -SET(CPACK_STRIP_FILES "bin/cmake") -SET(CPACK_PACKAGE_EXECUTABLES "OrocosExec" "Orocos Executable") -INCLUDE(CPack) -ENDIF (CPACK_PACKAGES) -ELSE ( "${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" STREQUAL "2.4" ) - - MESSAGE ( "Disabling packaging for version ${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}") - -ENDIF ( "${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" STREQUAL "2.4" ) - - ############################# # # # Building Doxygen documents# @@ -192,8 +103,8 @@ IF (DOXYGEN) ADD_DEPENDENCIES(docs docapi) CONFIGURE_FILE(Doxyfile.in Doxyfile @ONLY) - # provide a link to src. Used by Doxygen. - EXECUTE_PROCESS(COMMAND ln -nfs ${PROJ_SOURCE_DIR}/src ${PROJ_BINARY_DIR}/rtt ERROR_QUIET) + # provide a link to src. Used only by Doxygen. + EXECUTE_PROCESS(COMMAND create_symlink ${PROJ_SOURCE_DIR}/src ${PROJ_BINARY_DIR}/rtt ERROR_QUIET) ENDIF (DOXYGEN) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 758d0eebb..f632b818d 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -104,6 +104,8 @@ ENDIF ( NOT OS_EMBEDDED OR OS_EMBEDDED_SCRIPTING AND CMAKE_BUILD_TYPE STREQUAL " # Settings for building a static library (.a) # +INCLUDE_DIRECTORIES(${PROJ_SOURCE_DIR}/src ${PROJ_BINARY_DIR}/src ${PROJ_BINARY_DIR}/src/os ${PROJ_BINARY_DIR}/src/os/${OROCOS_TARGET}) + #SET(COMPILE_FLAGS "${CMAKE_CXX_FLAGS_ADD} ${RTT_CFLAGS} -DOROCOS_TARGET=${OROCOS_TARGET}") IF ( BUILD_STATIC )