| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- # Copyright (c) 2017, Branden Archer
- # All rights reserved.
- #
- # Redistribution and use in source and binary forms, with or without
- # modification, are permitted provided that the following conditions are met:
- # * Redistributions of source code must retain the above copyright
- # notice, this list of conditions and the following disclaimer.
- # * Redistributions in binary form must reproduce the above copyright
- # notice, this list of conditions and the following disclaimer in the
- # documentation and/or other materials provided with the distribution.
- # * Neither the name of this project nor the names of its contributors may
- # be used to endorse or promote products derived from this software without
- # specific prior written permission.
- #
- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- # DISCLAIMED. IN NO EVENT SHALL Branden Archer BE LIABLE FOR ANY
- # DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- # ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- project(money C)
- cmake_minimum_required(VERSION 2.8 FATAL_ERROR)
- set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
- ###############################################################################
- # Set build features
- set(CMAKE_BUILD_TYPE Debug)
- ###############################################################################
- include(CheckCSourceCompiles)
- include(CheckCSourceRuns)
- include(CheckFunctionExists)
- include(CheckIncludeFile)
- include(CheckIncludeFiles)
- include(CheckLibraryExists)
- include(CheckSymbolExists)
- include(CheckTypeSize)
- ###############################################################################
- # Check headers
- set(INCLUDES "")
- macro(ck_check_include_file header var)
- check_include_files("${INCLUDES};${header}" ${var})
- if(${var})
- set(INCLUDES ${INCLUDES} ${header})
- endif(${var})
- endmacro(ck_check_include_file)
- ck_check_include_file("stdlib.h" HAVE_STDLIB_H)
- ###############################################################################
- # Check functions
- # (Nothing to check for the money example)
- ###############################################################################
- # Check defines
- # (Nothing to check for the money example)
- ###############################################################################
- # Check struct members
- # (Nothing to check for the money example)
- ###############################################################################
- # Check for integer types
- # (The following are used in check.h. Regardless if they are used in
- # the project, they will need to be checked in order to use Check).
- check_type_size(intmax_t INTMAX_T)
- check_type_size(uintmax_t UINTMAX_T)
- check_type_size(pid_t PID_T)
- if(NOT HAVE_PID_T)
- if(WIN32)
- set(pid_t "int")
- else(WIN32)
- MESSAGE(FATAL_ERROR "pid_t doesn't exist on this platform?")
- endif(WIN32)
- endif(NOT HAVE_PID_T)
- ###############################################################################
- # Check libraries
- ###############################################################################
- # Generate "config.h" from "cmake/config.h.cmake"
- configure_file(${CMAKE_CURRENT_SOURCE_DIR}/cmake/config.h.in
- ${CMAKE_CURRENT_BINARY_DIR}/config.h)
- include_directories(BEFORE ${CMAKE_CURRENT_BINARY_DIR})
- add_definitions(-DHAVE_CONFIG_H)
- set(CONFIG_HEADER ${CMAKE_CURRENT_BINARY_DIR}/config.h)
- ###############################################################################
- # Subdirectories
- add_subdirectory(src)
- add_subdirectory(tests)
- ###############################################################################
- # Unit tests
- enable_testing()
- add_test(NAME check_money COMMAND check_money)
|