rsys

Basic data structures and low-level features
git clone git://git.meso-star.fr/rsys.git
Log | Files | Refs | README | LICENSE

commit d7a1b73e44b404b868f45f6272964ee250427eec
parent 2a687ccc31b0d190d87c7bee5c80a4923a42f594
Author: vaplv <vaplv@free.fr>
Date:   Sat, 15 Feb 2014 14:43:40 +0100

Rely on RCMake to manage the cmake project files

Diffstat:
M.gitignore | 3+--
Mcmake/CMakeLists.txt | 77++++++++++++++++++++++++++++-------------------------------------------------
Acmake/RsysConfig.cmake | 26++++++++++++++++++++++++++
Dcmake/config/RSysConfig.cmake.in | 32--------------------------------
Dcmake/config/RSysConfigVersion.cmake.in | 40----------------------------------------
Dcmake/toolchain/i686-pc-mingw32-toolchain.cmake | 13-------------
Dcmake/toolchain/x86_64-w64-mingw32-toolchain.cmake | 13-------------
7 files changed, 55 insertions(+), 149 deletions(-)

diff --git a/.gitignore b/.gitignore @@ -4,11 +4,10 @@ CMakeFiles Makefile tmp [Bb]uild -*.swp +*.sw[po] *.[ao] *~ tags -cmake_build rsys_version.h RSysConfig.cmake RSysConfigVersion.cmake diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt @@ -1,42 +1,14 @@ cmake_minimum_required(VERSION 2.6) project(rsys C) +cmake_policy(SET CMP0011 NEW) enable_testing() -if(NOT CMAKE_COMPILER_IS_GNUCC) - message(FATAL_ERROR "Unsupported compiler") -endif(NOT CMAKE_COMPILER_IS_GNUCC) - -################################################################################ -# Some cmake variable -################################################################################ set(CMAKE_CURRENT_SOURCE_DIR ${PROJECT_SOURCE_DIR}/../src) -set(CMAKE_DEBUG_POSTFIX "-dbg") - -################################################################################ -# Setup compile flags/parameters -################################################################################ -if(NOT MINGW AND CMAKE_SIZEOF_VOID_P EQUAL 8) - set(BUILD_32-BIT OFF CACHE BOOL "Force code generation for 32-bit environment") -endif(NOT MINGW AND CMAKE_SIZEOF_VOID_P EQUAL 8) - -set(C_FLAGS "-pedantic -std=c89 -fvisibility=hidden -fstrict-aliasing") -set(C_FLAGS_WARN "-Wall -Wextra -Wcast-align -Wmissing-declarations -Wmissing-prototypes -Wconversion") -set(C_FLAGS_LINK "-Wl,--no-undefined") - -if(NOT MINGW) - set(C_FLAGS_UNIX "-fPIC") - if(BUILD_32-BIT) - set(C_FLAGS "${C_FLAGS} -m32") - endif(BUILD_32-BIT) -endif(NOT MINGW) - -set(CMAKE_C_FLAGS "${C_FLAGS} ${C_FLAGS_UNIX} ${C_FLAGS_WARN} ${C_FLAGS_LINK}") -set(CMAKE_C_FLAGS_DEBUG "-g -DDEBUG") -set(CMAKE_C_FLAGS_RELEASE "-O2 -DNDEBUG") ################################################################################ # Check dependencies ################################################################################ +find_package(RCMake REQUIRED) find_package(Threads REQUIRED) find_package(OpenMP) @@ -44,21 +16,35 @@ if(CMAKE_USE_PTHREADS_INIT) add_definitions(-DRSYS_USE_PTHREADS) endif(CMAKE_USE_PTHREADS_INIT) +set(CMAKE_MODULE_PATH ${RCMAKE_SOURCE_DIR}) +include(rcmake) + +################################################################################ +# Generatio the module configuration file +################################################################################ +set(RCMAKE_MODULE_PREFIX RSys) +set(RCMAKE_MODULE_HEADER rsys/rsys.h) +set(RCMAKE_MODULE_LIBRARY rsys) +configure_file(${RCMAKE_SOURCE_DIR}/config.cmake.in + ${PROJECT_SOURCE_DIR}/RsysConfig.cmake) + +set(RCMAKE_MODULE_VERSION_MAJOR 0) +set(RCMAKE_MODULE_VERSION_MINOR 0) +set(RCMAKE_MODULE_VERSION_PATCH 0) +configure_file(${RCMAKE_SOURCE_DIR}/config_version.cmake.in + ${PROJECT_SOURCE_DIR}/RSysConfigVersion.cmake) + ################################################################################ # Configure and define targets ################################################################################ -set(VERSION_MAJOR 0) -set(VERSION_MINOR 0) -set(VERSION_PATCH 0) +set(VERSION_MAJOR ${RCMAKE_MODULE_VERSION_MAJOR}) +set(VERSION_MINOR ${RCMAKE_MODULE_VERSION_MINOR}) +set(VERSION_PATCH ${RCMAKE_MODULE_VERSION_PATCH}) set(RSYS_VERSION ${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}) -message(STATUS "Current library version: ${RSYS_VERSION}") +message(STATUS "Current ${PROJECT_NAME} version: ${RSYS_VERSION}") configure_file(${CMAKE_CURRENT_SOURCE_DIR}/rsys_version.h.in ${CMAKE_CURRENT_SOURCE_DIR}/rsys_version.h @ONLY) -configure_file(${PROJECT_SOURCE_DIR}/config/RSysConfig.cmake.in - ${PROJECT_SOURCE_DIR}/config/RSysConfig.cmake @ONLY) -configure_file(${PROJECT_SOURCE_DIR}/config/RSysConfigVersion.cmake.in - ${PROJECT_SOURCE_DIR}/config/RSysConfigVersion.cmake @ONLY) set(RSYS_FILES_CMAKE RSysConfig.cmake @@ -85,17 +71,10 @@ set(RSYS_FILES_INC_EDIT ${RSYS_FILES_INC_COMMON} rsys_version.h.in) set(RSYS_FILES_INC_INSTALL ${RSYS_FILES_INC_COMMON} rsys_version.h) # Prepend each file in the `_files' list by `_path' -macro(prepend_path _files _path) - unset(_tmp) - foreach(f ${${_files}}) - list(APPEND _tmp ${_path}/${f}) - endforeach(f) - set(${_files} ${_tmp}) -endmacro(prepend_path) -prepend_path(RSYS_FILES_CMAKE ${PROJECT_SOURCE_DIR}/config) -prepend_path(RSYS_FILES_SRC ${CMAKE_CURRENT_SOURCE_DIR}) -prepend_path(RSYS_FILES_INC_EDIT ${CMAKE_CURRENT_SOURCE_DIR}) -prepend_path(RSYS_FILES_INC_INSTALL ${CMAKE_CURRENT_SOURCE_DIR}) +rcmake_prepend_path(RSYS_FILES_CMAKE ${PROJECT_SOURCE_DIR}) +rcmake_prepend_path(RSYS_FILES_SRC ${CMAKE_CURRENT_SOURCE_DIR}) +rcmake_prepend_path(RSYS_FILES_INC_EDIT ${CMAKE_CURRENT_SOURCE_DIR}) +rcmake_prepend_path(RSYS_FILES_INC_INSTALL ${CMAKE_CURRENT_SOURCE_DIR}) add_library(rsys SHARED ${RSYS_FILES_SRC} ${RSYS_FILES_INC}) target_link_libraries(rsys ${CMAKE_THREAD_LIBS_INIT}) diff --git a/cmake/RsysConfig.cmake b/cmake/RsysConfig.cmake @@ -0,0 +1,26 @@ +cmake_minimum_required(VERSION 2.6) +# Try to find the RSys devel. Once done this will define: +# - RSys_FOUND: system has RSys +# - RSys_INCLUDE_DIR: the RSys include directory +# - RSys_LIBRARY[_DEBUG]: Link these to use rsys +find_path(RSys_INCLUDE_DIR rsys/rsys.h) + +find_library(RSys_LIBRARY + rsys + PATHS bin Bin BIN) + +find_library(RSys_LIBRARY_DEBUG + rsys-dbg + PATHS bin Bin BIN) + +if(NOT RSys_LIBRARY_DEBUG) + unset(RSys_LIBRARY_DEBUG CACHE) + set(RSys_LIBRARY_DEBUG + CACHE PATH "Path to a library") +endif(NOT RSys_LIBRARY_DEBUG) + +include(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(RSys DEFAULT_MSG + RSys_INCLUDE_DIR + RSys_LIBRARY + RSys_LIBRARY_DEBUG) diff --git a/cmake/config/RSysConfig.cmake.in b/cmake/config/RSysConfig.cmake.in @@ -1,32 +0,0 @@ -# Try to find the rsys devel. Once done this will define: -# - RSYS_FOUND - system has rsys -# - RSYS_INCLUDE_DIRS - the rsys include directory -# - RSYS_LIBRARIES - Link these to use rsys -# - RSYS_LIBRARIES_DEBUG - Link these to use rsys in debug -include(FindPackageHandleStandardArgs) - -find_path(RSYS_INCLUDE_DIRS rsys/rsys.h) -find_library(RSYS_LIBRARIES rsys PATHS bin) -find_library(RSYS_LIBRARIES_DEBUG rsys@CMAKE_DEBUG_POSTFIX@ PATHS bin) - -if(RSYS_FIND_COMPONENTS) - set(_rsys RSYS) -elseif(Rsys_FIND_COMPONENTS) - set(_rsys Rsys) -elseif(RSys_FIND_COMPONENTS) - set(_rsys RSys) -else(RSYS_FIND_COMPONENTS) - set(_rsys rsys) -endif(RSYS_FIND_COMPONENTS) - -foreach(_cmp ${${_rsys}_FIND_COMPONENTS}) - if(${_rsys}_FIND_REQUIRED_${_cmp}) - list(APPEND _rsys_required_components ${_cmp}) - endif(${_rsys}_FIND_REQUIRED_${_cmp}) -endforeach(_cmp) - -if(NOT _rsys_required_components) - list(APPEND _rsys_required_components RSYS_LIBRARIES RSYS_INCLUDE_DIRS) -endif(NOT _rsys_required_components) - -FIND_PACKAGE_HANDLE_STANDARD_ARGS(${_rsys} DEFAULT_MSG ${_rsys_required_components}) diff --git a/cmake/config/RSysConfigVersion.cmake.in b/cmake/config/RSysConfigVersion.cmake.in @@ -1,40 +0,0 @@ -set(VERSION_MAJOR @VERSION_MAJOR@) -set(VERSION_MINOR @VERSION_MINOR@) -set(VERSION_PATCH @VERSION_PATCH@) -set(PACKAGE_VERSION "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}") - -if(NOT PACKAGE_FIND_VERSION - OR PACKAGE_VERSION VERSION_EQUAL PACKAGE_FIND_VERSION) - set(PACKAGE_VERSION_COMPATIBLE TRUE) - set(PACKAGE_VERSION_EXACT TRUE) - set(PACKAGE_VERSION_UNSUITABLE FALSE) - return() -endif(NOT PACKAGE_FIND_VERSION - OR PACKAGE_VERSION VERSION_EQUAL PACKAGE_FIND_VERSION) - -if(NOT VERSION_MAJOR VERSION_EQUAL PACKAGE_FIND_VERSION_MAJOR) - set(PACKAGE_VERSION_COMPATIBLE FALSE) - set(PACKAGE_VERSION_EXACT FALSE) - set(PACKAGE_VERSION_UNSUITABLE TRUE) - return() -endif(NOT VERSION_MAJOR VERSION_EQUAL PACKAGE_FIND_VERSION_MAJOR) - -if(VERSION_MINOR VERSION_LESS PACKAGE_FIND_VERSION_MINOR) - set(PACKAGE_VERSION_COMPATIBLE FALSE) - set(PACKAGE_VERSION_EXACT FALSE) - set(PACKAGE_VERSION_UNSUITABLE TRUE) - return() -endif(VERSION_MINOR VERSION_LESS PACKAGE_FIND_VERSION_MINOR) - -if(VERSION_MINOR VERSION_EQUAL PACKAGE_FIND_VERSION_MINOR ) - if(VERSION_PATCH VERSION_LESS PACKAGE_FIND_VERSION_PATCH) - set(PACKAGE_VERSION_COMPATIBLE FALSE) - set(PACKAGE_VERSION_EXACT FALSE) - set(PACKAGE_VERSION_UNSUITABLE TRUE) - return() - endif() -endif() - -set(PACKAGE_VERSION_COMPATIBLE TRUE) -set(PACKAGE_VERSION_EXACT FALSE) -set(PACKAGE_VERSION_UNSUITABLE FALSE) diff --git a/cmake/toolchain/i686-pc-mingw32-toolchain.cmake b/cmake/toolchain/i686-pc-mingw32-toolchain.cmake @@ -1,13 +0,0 @@ -set(CMAKE_SYSTEM_NAME Windows) -set(CMAKE_C_COMPILER i686-pc-mingw32-gcc) -set(CMAKE_RC_COMPILER i686-pc-mingw32-windres) - -# Here is the target environment located -set(CMAKE_FIND_ROOT_PATH /usr/i686-pc-mingw32/sys-root/mingw) - -# Adjust the default behaviour of the FIND_XXX() commands: -# search headers and libraries in the target environment, search -# programs in the host environment -set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) -set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) -set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) diff --git a/cmake/toolchain/x86_64-w64-mingw32-toolchain.cmake b/cmake/toolchain/x86_64-w64-mingw32-toolchain.cmake @@ -1,13 +0,0 @@ -set(CMAKE_SYSTEM_NAME Windows) -set(CMAKE_C_COMPILER x86_64-w64-mingw32-gcc) -set(CMAKE_RC_COMPILER x86_64-w64-mingw32-windres) - -# Here is the target environment located -set(CMAKE_FIND_ROOT_PATH /usr/x86_64-w64-mingw32/sys-root/mingw) - -# Adjust the default behaviour of the FIND_XXX() commands: -# search headers and libraries in the target environment, search -# programs in the host environment -set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) -set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) -set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)