summaryrefslogtreecommitdiffhomepage
path: root/cmake/CompileDefinitions.cmake
diff options
context:
space:
mode:
authorLázaro Albuquerque <[email protected]>2024-06-16 04:49:59 -0400
committerGitHub <[email protected]>2024-06-16 10:49:59 +0200
commit307c998495a769092a8587c91a3efdb526de909c (patch)
tree6e5801ec81d27be32575ea4d92ee9e2d8f0d2830 /cmake/CompileDefinitions.cmake
parenta29d334734f720431872266743ba5560870e3453 (diff)
downloadraylib-307c998495a769092a8587c91a3efdb526de909c.tar.gz
raylib-307c998495a769092a8587c91a3efdb526de909c.zip
[build] Making `config.h` fully available to CMake users (#4044)
* Create ParseConfigHeader.cmake This script parses the config.h file to automate the process of exposing the configuration flags and configuration values found in the latter. * Update CompileDefinitions.cmake Makes use of the new functionality found in ParseConfigHeader.cmake to make things consistent. * Update CMakeOptions.txt Makes use of the new functionality found in ParseConfigHeader.cmake to make things consistent. * Update CMakeLists.txt Changes required to make possible building raylib for web on Windows 10. * Update LibraryConfigurations.cmake Removes a warning that linker-only flags were being passed to the compiler, which is in accordance to https://emscripten.org/docs/tools_reference/settings_reference.html. * Update CMakeOptions.txt Removed clutter. * Update CompileDefinitions.cmake Removed clutter. * Update CompileDefinitions.cmake Some applications might check for PLATFORM_WEB instead of __EMSCRIPTEN__. * Update CompileDefinitions.cmake Reverting * Update CMakeLists.txt USE_AUDIO is redundant in the presence of the already existent and more descriptive SUPPORT_MODULE_RAUDIO. * Update CompileDefinitions.cmake USE_AUDIO is redundant in the presence of the already existent and more descriptive SUPPORT_MODULE_RAUDIO. * Update ParseConfigHeader.cmake * Revert "Update CMakeLists.txt" This reverts commit 1785fc06b5b89e65515cea3afd3e3c095f15e350. * Revert "Update CompileDefinitions.cmake" This reverts commit 62f9a3a0ea21af7bd0a1ab74d10a305fca2a5695. * Revert "Update CMakeLists.txt" This reverts commit 3e7912144edc5c69c53ed5a9515ae21d66937963. * Revert "Update LibraryConfigurations.cmake" This reverts commit bcc4310c4960c200c340671caa298983340ea386.
Diffstat (limited to 'cmake/CompileDefinitions.cmake')
-rw-r--r--cmake/CompileDefinitions.cmake130
1 files changed, 13 insertions, 117 deletions
diff --git a/cmake/CompileDefinitions.cmake b/cmake/CompileDefinitions.cmake
index cc8324c4..0acbe2fa 100644
--- a/cmake/CompileDefinitions.cmake
+++ b/cmake/CompileDefinitions.cmake
@@ -3,126 +3,22 @@ target_compile_definitions("raylib" PUBLIC "${PLATFORM_CPP}")
target_compile_definitions("raylib" PUBLIC "${GRAPHICS}")
function(define_if target variable)
- if (${${variable}})
+ if(${${variable}})
message(STATUS "${variable}=${${variable}}")
- target_compile_definitions(${target} PUBLIC "${variable}")
- endif ()
+ target_compile_definitions(${target} PRIVATE "${variable}")
+ endif()
endfunction()
-if (${CUSTOMIZE_BUILD})
- target_compile_definitions("raylib" PUBLIC EXTERNAL_CONFIG_FLAGS)
+if(${CUSTOMIZE_BUILD})
+ target_compile_definitions("raylib" PRIVATE EXTERNAL_CONFIG_FLAGS)
define_if("raylib" USE_AUDIO)
- define_if("raylib" SUPPORT_MODULE_RSHAPES)
- define_if("raylib" SUPPORT_MODULE_RTEXTURES)
- define_if("raylib" SUPPORT_MODULE_RTEXT)
- define_if("raylib" SUPPORT_MODULE_RMODELS)
- define_if("raylib" SUPPORT_MODULE_RAUDIO)
- define_if("raylib" SUPPORT_CAMERA_SYSTEM)
- define_if("raylib" SUPPORT_GESTURES_SYSTEM)
- define_if("raylib" SUPPORT_MOUSE_GESTURES)
- define_if("raylib" SUPPORT_SSH_KEYBOARD_RPI)
- define_if("raylib" SUPPORT_DEFAULT_FONT)
- define_if("raylib" SUPPORT_SCREEN_CAPTURE)
- define_if("raylib" SUPPORT_GIF_RECORDING)
- define_if("raylib" SUPPORT_BUSY_WAIT_LOOP)
- define_if("raylib" SUPPORT_EVENTS_WAITING)
- define_if("raylib" SUPPORT_WINMM_HIGHRES_TIMER)
- define_if("raylib" SUPPORT_COMPRESSION_API)
- define_if("raylib" SUPPORT_EVENTS_AUTOMATION)
- define_if("raylib" SUPPORT_CUSTOM_FRAME_CONTROL)
- define_if("raylib" SUPPORT_QUADS_DRAW_MODE)
- define_if("raylib" SUPPORT_IMAGE_EXPORT)
- define_if("raylib" SUPPORT_IMAGE_GENERATION)
- define_if("raylib" SUPPORT_IMAGE_MANIPULATION)
- define_if("raylib" SUPPORT_FILEFORMAT_PNG)
- define_if("raylib" SUPPORT_FILEFORMAT_DDS)
- define_if("raylib" SUPPORT_FILEFORMAT_HDR)
- define_if("raylib" SUPPORT_FILEFORMAT_PIC)
- define_if("raylib" SUPPORT_FILEFORMAT_PNM)
- define_if("raylib" SUPPORT_FILEFORMAT_KTX)
- define_if("raylib" SUPPORT_FILEFORMAT_ASTC)
- define_if("raylib" SUPPORT_FILEFORMAT_BMP)
- define_if("raylib" SUPPORT_FILEFORMAT_TGA)
- define_if("raylib" SUPPORT_FILEFORMAT_JPG)
- define_if("raylib" SUPPORT_FILEFORMAT_GIF)
- define_if("raylib" SUPPORT_FILEFORMAT_QOI)
- define_if("raylib" SUPPORT_FILEFORMAT_PSD)
- define_if("raylib" SUPPORT_FILEFORMAT_PKM)
- define_if("raylib" SUPPORT_FILEFORMAT_PVR)
- define_if("raylib" SUPPORT_FILEFORMAT_SVG)
- define_if("raylib" SUPPORT_FILEFORMAT_FNT)
- define_if("raylib" SUPPORT_FILEFORMAT_TTF)
- define_if("raylib" SUPPORT_TEXT_MANIPULATION)
- define_if("raylib" SUPPORT_MESH_GENERATION)
- define_if("raylib" SUPPORT_FILEFORMAT_OBJ)
- define_if("raylib" SUPPORT_FILEFORMAT_MTL)
- define_if("raylib" SUPPORT_FILEFORMAT_IQM)
- define_if("raylib" SUPPORT_FILEFORMAT_GLTF)
- define_if("raylib" SUPPORT_FILEFORMAT_VOX)
- define_if("raylib" SUPPORT_FILEFORMAT_M3D)
- define_if("raylib" SUPPORT_FILEFORMAT_WAV)
- define_if("raylib" SUPPORT_FILEFORMAT_OGG)
- define_if("raylib" SUPPORT_FILEFORMAT_XM)
- define_if("raylib" SUPPORT_FILEFORMAT_MOD)
- define_if("raylib" SUPPORT_FILEFORMAT_MP3)
- define_if("raylib" SUPPORT_FILEFORMAT_QOA)
- define_if("raylib" SUPPORT_FILEFORMAT_FLAC)
- define_if("raylib" SUPPORT_STANDARD_FILEIO)
- define_if("raylib" SUPPORT_TRACELOG)
- if (UNIX AND NOT APPLE)
- target_compile_definitions("raylib" PUBLIC "MAX_FILEPATH_LENGTH=4096")
- else ()
- target_compile_definitions("raylib" PUBLIC "MAX_FILEPATH_LENGTH=512")
- endif ()
-
- target_compile_definitions("raylib" PUBLIC "MAX_GAMEPADS=4")
- target_compile_definitions("raylib" PUBLIC "MAX_GAMEPAD_AXIS=8")
- target_compile_definitions("raylib" PUBLIC "MAX_GAMEPAD_BUTTONS=32")
- target_compile_definitions("raylib" PUBLIC "MAX_TOUCH_POINTS=10")
- target_compile_definitions("raylib" PUBLIC "MAX_KEY_PRESSED_QUEUE=16")
-
- target_compile_definitions("raylib" PUBLIC "STORAGE_DATA_FILE=\"storage.data\"")
- target_compile_definitions("raylib" PUBLIC "MAX_CHAR_PRESSED_QUEUE=16")
- target_compile_definitions("raylib" PUBLIC "MAX_DECOMPRESSION_SIZE=64")
-
- if (${GRAPHICS} MATCHES "GRAPHICS_API_OPENGL_33" OR ${GRAPHICS} MATCHES "GRAPHICS_API_OPENGL_11")
- target_compile_definitions("raylib" PUBLIC "DEFAULT_BATCH_BUFFER_ELEMENTS=8192")
- elseif (${GRAPHICS} MATCHES "GRAPHICS_API_OPENGL_ES2")
- target_compile_definitions("raylib" PUBLIC "DEFAULT_BATCH_BUFFER_ELEMENTS=2048")
- endif ()
-
- target_compile_definitions("raylib" PUBLIC "DEFAULT_BATCH_DRAWCALLS=256")
- target_compile_definitions("raylib" PUBLIC "MAX_MATRIX_STACK_SIZE=32")
- target_compile_definitions("raylib" PUBLIC "MAX_SHADER_LOCATIONS=32")
- target_compile_definitions("raylib" PUBLIC "MAX_MATERIAL_MAPS=12")
- target_compile_definitions("raylib" PUBLIC "RL_CULL_DISTANCE_NEAR=0.01")
- target_compile_definitions("raylib" PUBLIC "RL_CULL_DISTANCE_FAR=1000.0")
-
- target_compile_definitions("raylib" PUBLIC "RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION=0")
- target_compile_definitions("raylib" PUBLIC "RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD=1")
- target_compile_definitions("raylib" PUBLIC "RL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL=2")
- target_compile_definitions("raylib" PUBLIC "RL_DEFAULT_SHADER_ATTRIB_LOCATION_COLOR=3")
- target_compile_definitions("raylib" PUBLIC "RL_DEFAULT_SHADER_ATTRIB_LOCATION_TANGENT=4")
- target_compile_definitions("raylib" PUBLIC "RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD2=5")
-
- target_compile_definitions("raylib" PUBLIC "RL_DEFAULT_SHADER_ATTRIB_NAME_POSITION=\"vertexPosition\"")
- target_compile_definitions("raylib" PUBLIC "RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD=\"vertexTexCoord\"")
- target_compile_definitions("raylib" PUBLIC "RL_DEFAULT_SHADER_ATTRIB_NAME_NORMAL=\"vertexNormal\"")
- target_compile_definitions("raylib" PUBLIC "RL_DEFAULT_SHADER_ATTRIB_NAME_COLOR=\"vertexColor\"")
- target_compile_definitions("raylib" PUBLIC "RL_DEFAULT_SHADER_ATTRIB_NAME_TANGENT=\"vertexTangent\"")
- target_compile_definitions("raylib" PUBLIC "RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD2=\"vertexTexCoord2\"")
-
- target_compile_definitions("raylib" PUBLIC "MAX_TEXT_BUFFER_LENGTH=1024")
- target_compile_definitions("raylib" PUBLIC "MAX_TEXT_UNICODE_CHARS=512")
- target_compile_definitions("raylib" PUBLIC "MAX_TEXTSPLIT_COUNT=128")
-
- target_compile_definitions("raylib" PUBLIC "AUDIO_DEVICE_FORMAT=ma_format_f32")
- target_compile_definitions("raylib" PUBLIC "AUDIO_DEVICE_CHANNELS=2")
- target_compile_definitions("raylib" PUBLIC "AUDIO_DEVICE_SAMPLE_RATE=44100")
- target_compile_definitions("raylib" PUBLIC "DEFAULT_AUDIO_BUFFER_SIZE=4096")
-
- target_compile_definitions("raylib" PUBLIC "MAX_TRACELOG_MSG_LENGTH=128")
- target_compile_definitions("raylib" PUBLIC "MAX_UWP_MESSAGES=512")
-endif ()
+ foreach(FLAG IN LISTS CONFIG_HEADER_FLAGS)
+ string(REGEX MATCH "([^=]+)=(.+)" _ ${FLAG})
+ define_if("raylib" ${CMAKE_MATCH_1})
+ endforeach()
+ foreach(VALUE IN LISTS CONFIG_HEADER_VALUES)
+ target_compile_definitions("raylib" PRIVATE ${VALUE})
+ endforeach()
+endif()