From ae26e083b4471f1404e4f25eee71e4f71e9b13f0 Mon Sep 17 00:00:00 2001 From: Ahmad Fatoum Date: Sun, 20 May 2018 19:59:18 +0200 Subject: [PATCH] CMake: Add default build type if none specified Release, unless we are in a Git repo, then it's Debug. --- cmake/BuildType.cmake | 43 +++++++++++++++++++++++++++++++++++++++++++ src/CMakeLists.txt | 4 +++- 2 files changed, 46 insertions(+), 1 deletion(-) create mode 100644 cmake/BuildType.cmake diff --git a/cmake/BuildType.cmake b/cmake/BuildType.cmake new file mode 100644 index 000000000..80ccdee2c --- /dev/null +++ b/cmake/BuildType.cmake @@ -0,0 +1,43 @@ +# Set a default build type if none was specified +set(default_build_type "Release") +if(EXISTS "${CMAKE_SOURCE_DIR}/.git") + set(default_build_type "Debug") +endif() + +if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) + message(STATUS "Setting build type to '${default_build_type}' as none was specified.") + set(CMAKE_BUILD_TYPE "${default_build_type}" CACHE + STRING "Choose the type of build." FORCE) + # Set the possible values of build type for cmake-gui + set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release" + "MinSizeRel" "RelWithDebInfo") +endif() + +# Taken from the https://github.com/OpenChemistry/tomviz project +# Copyright (c) 2014-2017, Kitware, Inc. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# +# 1. Redistributions of source code must retain the above copyright notice, this +# list of conditions and the following disclaimer. +# +# 2. 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. +# +# 3. Neither the name of the copyright holder 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 THE COPYRIGHT HOLDER OR CONTRIBUTORS 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. diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 4b32de107..f6f867e29 100755 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,12 +1,14 @@ # Setup the project and settings project(raylib) include(GNUInstallDirs) +set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../cmake") set(PROJECT_VERSION 2.0.0) set(API_VERSION 2) set(RAYLIB raylib) # Name of the generated library include("CMakeOptions.txt") +include(BuildType) configure_file(config.h.in ${CMAKE_BINARY_DIR}/cmake/config.h) include_directories(${CMAKE_BINARY_DIR}) @@ -39,7 +41,7 @@ if(NOT glfw3_FOUND) list(APPEND raylib_sources $) endif() -include("../cmake/utils.cmake") +include(utils) if(USE_AUDIO) file(GLOB stb_vorbis external/stb_vorbis.c)