build system: add ability to specifiy config file

This commit is contained in:
veclav talica 2022-06-23 08:31:05 +05:00
parent d7a0b46006
commit 6d323aa485
10 changed files with 51 additions and 22 deletions

View File

@ -26,6 +26,7 @@ endif()
option(INCLUDE_EVERYTHING "Include everything disabled by default (for CI usage" OFF)
set(OFF ${INCLUDE_EVERYTHING} CACHE INTERNAL "Replace any OFF by default with \${OFF} to have it covered by this option")
set(EXTERNAL_CONFIG_FILE "" CACHE STRING "Change default config.h by config file at path")
# raylib modules included
cmake_dependent_option(SUPPORT_MODULE_RSHAPES "Include module: rshapes" ON CUSTOMIZE_BUILD ON)

View File

@ -9,6 +9,11 @@ function(define_if target variable)
endif ()
endfunction()
if (NOT ${EXTERNAL_CONFIG_FILE} STREQUAL "")
message(STATUS "Config file: ${EXTERNAL_CONFIG_FILE}")
target_compile_definitions("raylib" PUBLIC EXTERNAL_CONFIG_FILE=<${EXTERNAL_CONFIG_FILE}>)
endif ()
if (${CUSTOMIZE_BUILD})
target_compile_definitions("raylib" PUBLIC EXTERNAL_CONFIG_FLAGS)
define_if("raylib" USE_AUDIO)

View File

@ -72,6 +72,10 @@ RAYLIB_RES_FILE ?= ./raylib.dll.rc.data
# if NONE, default config.h flags are used
RAYLIB_CONFIG_FLAGS ?= NONE
# Define external config file
# NOTE: Will load supplied fine instead of default ./config.h
RAYLIB_CONFIG_FILE ?= NONE
# To define additional cflags: Use make CUSTOM_CFLAGS=""
# Include raylib modules on compilation
@ -311,17 +315,22 @@ endif
# -fno-strict-aliasing jar_xm.h does shady stuff (breaks strict aliasing)
CFLAGS = -Wall -D_DEFAULT_SOURCE -D$(PLATFORM) -D$(GRAPHICS) -Wno-missing-braces -Werror=pointer-arith -fno-strict-aliasing $(CUSTOM_CFLAGS)
ifneq ($(RAYLIB_CONFIG_FLAGS), NONE)
CFLAGS += -DEXTERNAL_CONFIG_FLAGS $(RAYLIB_CONFIG_FLAGS)
ifneq ($(RAYLIB_CONFIG_FLAGS),NONE)
CFLAGS += -DEXTERNAL_CONFIG_FLAGS=$(RAYLIB_CONFIG_FLAGS)
endif
ifeq ($(PLATFORM), PLATFORM_WEB)
ifneq ($(RAYLIB_CONFIG_FILE),NONE)
$(warning $(RAYLIB_CONFIG_FILE))
CFLAGS += -DEXTERNAL_CONFIG_FILE="<$(RAYLIB_CONFIG_FILE)>"
endif
ifeq ($(PLATFORM),PLATFORM_WEB)
CFLAGS += -std=gnu99
else
CFLAGS += -std=c99
endif
ifeq ($(PLATFORM_OS), LINUX)
ifeq ($(PLATFORM_OS),LINUX)
CFLAGS += -fPIC
endif

View File

@ -71,14 +71,16 @@
#if defined(RAUDIO_STANDALONE)
#include "raudio.h"
#include <stdarg.h> // Required for: va_list, va_start(), vfprintf(), va_end()
#include <stdarg.h> // Required for: va_list, va_start(), vfprintf(), va_end()
#else
#include "raylib.h" // Declares module functions
#include "raylib.h" // Declares module functions
// Check if config flags have been externally provided on compilation line
#if !defined(EXTERNAL_CONFIG_FLAGS)
#include "config.h" // Defines module configuration flags
#if !defined(EXTERNAL_CONFIG_FLAGS) && !defined(EXTERNAL_CONFIG_FILE)
#include "config.h" // Defines module configuration flags
#elif defined(EXTERNAL_CONFIG_FILE)
#include EXTERNAL_CONFIG_FILE // Defines module configuration flags in macro specified path
#endif
#include "utils.h" // Required for: fopen() Android mapping
#include "utils.h" // Required for: fopen() Android mapping
#endif
#if defined(SUPPORT_MODULE_RAUDIO)

View File

@ -115,8 +115,10 @@
#include "raylib.h" // Declares module functions
// Check if config flags have been externally provided on compilation line
#if !defined(EXTERNAL_CONFIG_FLAGS)
#if !defined(EXTERNAL_CONFIG_FLAGS) && !defined(EXTERNAL_CONFIG_FILE)
#include "config.h" // Defines module configuration flags
#elif defined(EXTERNAL_CONFIG_FILE)
#include EXTERNAL_CONFIG_FILE // Defines module configuration flags in macro specified path
#endif
#include "utils.h" // Required for: TRACELOG() macros

View File

@ -40,11 +40,13 @@
*
**********************************************************************************************/
#include "raylib.h" // Declares module functions
#include "raylib.h" // Declares module functions
// Check if config flags have been externally provided on compilation line
#if !defined(EXTERNAL_CONFIG_FLAGS)
#include "config.h" // Defines module configuration flags
#if !defined(EXTERNAL_CONFIG_FLAGS) && !defined(EXTERNAL_CONFIG_FILE)
#include "config.h" // Defines module configuration flags
#elif defined(EXTERNAL_CONFIG_FILE)
#include EXTERNAL_CONFIG_FILE // Defines module configuration flags in macro specified path
#endif
#if defined(SUPPORT_MODULE_RMODELS)

View File

@ -45,11 +45,13 @@
*
**********************************************************************************************/
#include "raylib.h" // Declares module functions
#include "raylib.h" // Declares module functions
// Check if config flags have been externally provided on compilation line
#if !defined(EXTERNAL_CONFIG_FLAGS)
#include "config.h" // Defines module configuration flags
#if !defined(EXTERNAL_CONFIG_FLAGS) && !defined(EXTERNAL_CONFIG_FILE)
#include "config.h" // Defines module configuration flags
#elif defined(EXTERNAL_CONFIG_FILE)
#include EXTERNAL_CONFIG_FILE // Defines module configuration flags in macro specified path
#endif
#if defined(SUPPORT_MODULE_RSHAPES)

View File

@ -49,11 +49,13 @@
*
**********************************************************************************************/
#include "raylib.h" // Declares module functions
#include "raylib.h" // Declares module functions
// Check if config flags have been externally provided on compilation line
#if !defined(EXTERNAL_CONFIG_FLAGS)
#include "config.h" // Defines module configuration flags
#if !defined(EXTERNAL_CONFIG_FLAGS) && !defined(EXTERNAL_CONFIG_FILE)
#include "config.h" // Defines module configuration flags
#elif defined(EXTERNAL_CONFIG_FILE)
#include EXTERNAL_CONFIG_FILE // Defines module configuration flags in macro specified path
#endif
#if defined(SUPPORT_MODULE_RTEXT)

View File

@ -64,8 +64,10 @@
#include "raylib.h" // Declares module functions
// Check if config flags have been externally provided on compilation line
#if !defined(EXTERNAL_CONFIG_FLAGS)
#include "config.h" // Defines module configuration flags
#if !defined(EXTERNAL_CONFIG_FLAGS) && !defined(EXTERNAL_CONFIG_FILE)
#include "config.h" // Defines module configuration flags
#elif defined(EXTERNAL_CONFIG_FILE)
#include EXTERNAL_CONFIG_FILE // Defines module configuration flags in macro specified path
#endif
#if defined(SUPPORT_MODULE_RTEXTURES)

View File

@ -33,8 +33,10 @@
#include "raylib.h" // WARNING: Required for: LogType enum
// Check if config flags have been externally provided on compilation line
#if !defined(EXTERNAL_CONFIG_FLAGS)
#if !defined(EXTERNAL_CONFIG_FLAGS) && !defined(EXTERNAL_CONFIG_FILE)
#include "config.h" // Defines module configuration flags
#elif defined(EXTERNAL_CONFIG_FILE)
#include EXTERNAL_CONFIG_FILE // Defines module configuration flags in macro specified path
#endif
#include "utils.h"