CMakeOptions.txt 1.8 KB

123456789101112131415161718192021222324252627282930313233343536
  1. # ## Config options ###
  2. include(CMakeDependentOption)
  3. include(EnumOption)
  4. enum_option(PLATFORM "Desktop;Web;Android;Raspberry Pi;DRM;SDL" "Platform to build for.")
  5. enum_option(OPENGL_VERSION "OFF;4.3;3.3;2.1;1.1;ES 2.0;ES 3.0" "Force a specific OpenGL Version?")
  6. # Configuration options
  7. option(BUILD_EXAMPLES "Build the examples." ${RAYLIB_IS_MAIN})
  8. option(CUSTOMIZE_BUILD "Show options for customizing your Raylib library build." OFF)
  9. option(ENABLE_ASAN "Enable AddressSanitizer (ASAN) for debugging (degrades performance)" OFF)
  10. option(ENABLE_UBSAN "Enable UndefinedBehaviorSanitizer (UBSan) for debugging" OFF)
  11. option(ENABLE_MSAN "Enable MemorySanitizer (MSan) for debugging (not recommended to run with ASAN)" OFF)
  12. # Shared library is always PIC. Static library should be PIC too if linked into a shared library
  13. option(WITH_PIC "Compile static library as position-independent code" OFF)
  14. option(BUILD_SHARED_LIBS "Build raylib as a shared library" OFF)
  15. option(MACOS_FATLIB "Build fat library for both i386 and x86_64 on macOS" OFF)
  16. cmake_dependent_option(USE_AUDIO "Build raylib with audio module" ON CUSTOMIZE_BUILD ON)
  17. enum_option(USE_EXTERNAL_GLFW "OFF;IF_POSSIBLE;ON" "Link raylib against system GLFW instead of embedded one")
  18. # GLFW build options
  19. option(GLFW_BUILD_WAYLAND "Build the bundled GLFW with Wayland support" ON)
  20. option(GLFW_BUILD_X11 "Build the bundled GLFW with X11 support" ON)
  21. option(INCLUDE_EVERYTHING "Include everything disabled by default (for CI usage" OFF)
  22. set(OFF ${INCLUDE_EVERYTHING} CACHE INTERNAL "Replace any OFF by default with \${OFF} to have it covered by this option")
  23. include(ParseConfigHeader)
  24. foreach(FLAG IN LISTS CONFIG_HEADER_FLAGS)
  25. string(REGEX MATCH "([^=]+)=(.+)" _ ${FLAG})
  26. cmake_dependent_option(${CMAKE_MATCH_1} "" ${CMAKE_MATCH_2} CUSTOMIZE_BUILD ${CMAKE_MATCH_2})
  27. endforeach()