Use ON and OFF for CMake booleans

CMake supports a number of strings for truthy and falsey values.
ON/OFF and TRUE/FALSE are the most popular but 1/0 is also supported.
This is mostly a style choice but I'm inclined to believe that ON/OFF
is the most popular option and I'm generally in favor of style
choices that better align with the community at large.
This commit is contained in:
Chris Thrasher 2024-08-04 11:16:23 -06:00
parent 157d4d9163
commit ab109cd3cd
12 changed files with 73 additions and 73 deletions

View File

@ -28,15 +28,15 @@ jobs:
fail-fast: false fail-fast: false
matrix: matrix:
platform: platform:
- { name: Windows VS2019 x86, os: windows-2019, flags: -DSFML_USE_MESA3D=TRUE -GNinja } - { name: Windows VS2019 x86, os: windows-2019, flags: -DSFML_USE_MESA3D=ON -GNinja }
- { name: Windows VS2019 x64, os: windows-2019, flags: -DSFML_USE_MESA3D=TRUE -GNinja } - { name: Windows VS2019 x64, os: windows-2019, flags: -DSFML_USE_MESA3D=ON -GNinja }
- { name: Windows VS2022 x86, os: windows-2022, flags: -DSFML_USE_MESA3D=TRUE -GNinja } - { name: Windows VS2022 x86, os: windows-2022, flags: -DSFML_USE_MESA3D=ON -GNinja }
- { name: Windows VS2022 x64, os: windows-2022, flags: -DSFML_USE_MESA3D=TRUE -GNinja } - { name: Windows VS2022 x64, os: windows-2022, flags: -DSFML_USE_MESA3D=ON -GNinja }
- { name: Windows VS2022 ClangCL MSBuild, os: windows-2022, flags: -DSFML_USE_MESA3D=TRUE -T ClangCL } # ninja doesn't support specifying the toolset, so use the ClangCL toolset to test building with MSBuild as well - { name: Windows VS2022 ClangCL MSBuild, os: windows-2022, flags: -DSFML_USE_MESA3D=ON -T ClangCL } # ninja doesn't support specifying the toolset, so use the ClangCL toolset to test building with MSBuild as well
- { name: Windows VS2022 OpenGL ES, os: windows-2022, flags: -DSFML_USE_MESA3D=TRUE -DSFML_OPENGL_ES=ON -GNinja } - { name: Windows VS2022 OpenGL ES, os: windows-2022, flags: -DSFML_USE_MESA3D=ON -DSFML_OPENGL_ES=ON -GNinja }
- { name: Windows VS2022 Unity, os: windows-2022, flags: -DSFML_USE_MESA3D=TRUE -DCMAKE_UNITY_BUILD=ON -GNinja } - { name: Windows VS2022 Unity, os: windows-2022, flags: -DSFML_USE_MESA3D=ON -DCMAKE_UNITY_BUILD=ON -GNinja }
- { name: Windows LLVM/Clang, os: windows-2022, flags: -DSFML_USE_MESA3D=TRUE -DCMAKE_CXX_COMPILER=clang++ -GNinja } - { name: Windows LLVM/Clang, os: windows-2022, flags: -DSFML_USE_MESA3D=ON -DCMAKE_CXX_COMPILER=clang++ -GNinja }
- { name: Windows MinGW, os: windows-2022, flags: -DSFML_USE_MESA3D=TRUE -DCMAKE_CXX_COMPILER=g++ -GNinja } - { name: Windows MinGW, os: windows-2022, flags: -DSFML_USE_MESA3D=ON -DCMAKE_CXX_COMPILER=g++ -GNinja }
- { name: Linux GCC, os: ubuntu-22.04, flags: -GNinja } - { name: Linux GCC, os: ubuntu-22.04, flags: -GNinja }
- { name: Linux Clang, os: ubuntu-22.04, flags: -DCMAKE_CXX_COMPILER=clang++ -GNinja , gcovr_options: '--gcov-executable="llvm-cov-$CLANG_VERSION gcov"' } - { name: Linux Clang, os: ubuntu-22.04, flags: -DCMAKE_CXX_COMPILER=clang++ -GNinja , gcovr_options: '--gcov-executable="llvm-cov-$CLANG_VERSION gcov"' }
- { name: Linux GCC DRM, os: ubuntu-22.04, flags: -DSFML_USE_DRM=ON -DSFML_RUN_DISPLAY_TESTS=OFF -GNinja } - { name: Linux GCC DRM, os: ubuntu-22.04, flags: -DSFML_USE_DRM=ON -DSFML_RUN_DISPLAY_TESTS=OFF -GNinja }
@ -47,31 +47,31 @@ jobs:
- { name: iOS, os: macos-12, flags: -DCMAKE_SYSTEM_NAME=iOS -DCMAKE_OSX_ARCHITECTURES=arm64 } - { name: iOS, os: macos-12, flags: -DCMAKE_SYSTEM_NAME=iOS -DCMAKE_OSX_ARCHITECTURES=arm64 }
- { name: iOS Xcode, os: macos-12, flags: -DCMAKE_SYSTEM_NAME=iOS -GXcode -DCMAKE_XCODE_ATTRIBUTE_CODE_SIGNING_ALLOWED=NO } - { name: iOS Xcode, os: macos-12, flags: -DCMAKE_SYSTEM_NAME=iOS -GXcode -DCMAKE_XCODE_ATTRIBUTE_CODE_SIGNING_ALLOWED=NO }
config: config:
- { name: Shared, flags: -DBUILD_SHARED_LIBS=TRUE } - { name: Shared, flags: -DBUILD_SHARED_LIBS=ON }
- { name: Static, flags: -DBUILD_SHARED_LIBS=FALSE } - { name: Static, flags: -DBUILD_SHARED_LIBS=OFF }
type: type:
- { name: Release } - { name: Release }
- { name: Debug, flags: -DCMAKE_BUILD_TYPE=Debug -DSFML_ENABLE_COVERAGE=TRUE } - { name: Debug, flags: -DCMAKE_BUILD_TYPE=Debug -DSFML_ENABLE_COVERAGE=ON }
include: include:
- platform: { name: Windows VS2022 x64, os: windows-2022 } - platform: { name: Windows VS2022 x64, os: windows-2022 }
config: { name: Static with PCH (MSVC), flags: -DSFML_USE_MESA3D=TRUE -GNinja -DBUILD_SHARED_LIBS=FALSE -DSFML_ENABLE_PCH=1 } config: { name: Static with PCH (MSVC), flags: -DSFML_USE_MESA3D=ON -GNinja -DBUILD_SHARED_LIBS=OFF -DSFML_ENABLE_PCH=ON }
- platform: { name: Linux GCC, os: ubuntu-22.04 } - platform: { name: Linux GCC, os: ubuntu-22.04 }
config: { name: Static with PCH (GCC), flags: -GNinja -DCMAKE_CXX_COMPILER=g++ -DBUILD_SHARED_LIBS=FALSE -DSFML_ENABLE_PCH=1 } config: { name: Static with PCH (GCC), flags: -GNinja -DCMAKE_CXX_COMPILER=g++ -DBUILD_SHARED_LIBS=OFF -DSFML_ENABLE_PCH=ON }
- platform: { name: Linux Clang, os: ubuntu-22.04 } - platform: { name: Linux Clang, os: ubuntu-22.04 }
config: { name: Static with PCH (Clang), flags: -GNinja -DCMAKE_CXX_COMPILER=clang++ -DBUILD_SHARED_LIBS=FALSE -DSFML_ENABLE_PCH=1 } config: { name: Static with PCH (Clang), flags: -GNinja -DCMAKE_CXX_COMPILER=clang++ -DBUILD_SHARED_LIBS=OFF -DSFML_ENABLE_PCH=ON }
- platform: { name: Windows MinGW, os: windows-2022 } - platform: { name: Windows MinGW, os: windows-2022 }
config: { name: Static Standard Libraries, flags: -GNinja -DSFML_USE_MESA3D=TRUE -DCMAKE_CXX_COMPILER=g++ -DSFML_USE_STATIC_STD_LIBS=TRUE } config: { name: Static Standard Libraries, flags: -GNinja -DSFML_USE_MESA3D=ON -DCMAKE_CXX_COMPILER=g++ -DSFML_USE_STATIC_STD_LIBS=ON }
- platform: { name: Windows MinGW, os: windows-2022 } - platform: { name: Windows MinGW, os: windows-2022 }
config: { name: Static with PCH (GCC), flags: -GNinja -DSFML_USE_MESA3D=TRUE -DCMAKE_CXX_COMPILER=g++ -DBUILD_SHARED_LIBS=FALSE -DSFML_ENABLE_PCH=1 -DSFML_ENABLE_STDLIB_ASSERTIONS=FALSE } # disabling stdlib assertions due to false positive config: { name: Static with PCH (GCC), flags: -GNinja -DSFML_USE_MESA3D=ON -DCMAKE_CXX_COMPILER=g++ -DBUILD_SHARED_LIBS=OFF -DSFML_ENABLE_PCH=ON -DSFML_ENABLE_STDLIB_ASSERTIONS=OFF } # disabling stdlib assertions due to false positive
- platform: { name: macOS, os: macos-12 } - platform: { name: macOS, os: macos-12 }
config: { name: Frameworks, flags: -GNinja -DSFML_BUILD_FRAMEWORKS=TRUE -DBUILD_SHARED_LIBS=TRUE } config: { name: Frameworks, flags: -GNinja -DSFML_BUILD_FRAMEWORKS=ON -DBUILD_SHARED_LIBS=ON }
- platform: { name: macOS , os: macos-12 } - platform: { name: macOS , os: macos-12 }
config: { name: System Deps, flags: -GNinja -DBUILD_SHARED_LIBS=TRUE -DSFML_USE_SYSTEM_DEPS=TRUE } config: { name: System Deps, flags: -GNinja -DBUILD_SHARED_LIBS=ON -DSFML_USE_SYSTEM_DEPS=ON }
- platform: { name: Android, os: ubuntu-22.04 } - platform: { name: Android, os: ubuntu-22.04 }
config: config:
name: x86 (API 21) name: x86 (API 21)
flags: -GNinja -DCMAKE_ANDROID_ARCH_ABI=x86 -DCMAKE_SYSTEM_NAME=Android -DCMAKE_SYSTEM_VERSION=21 -DCMAKE_ANDROID_NDK=$ANDROID_NDK_ROOT -DBUILD_SHARED_LIBS=TRUE -DCMAKE_ANDROID_STL_TYPE=c++_shared -DSFML_RUN_DISPLAY_TESTS=OFF -DSFML_RUN_AUDIO_DEVICE_TESTS=OFF flags: -GNinja -DCMAKE_ANDROID_ARCH_ABI=x86 -DCMAKE_SYSTEM_NAME=Android -DCMAKE_SYSTEM_VERSION=21 -DCMAKE_ANDROID_NDK=$ANDROID_NDK_ROOT -DBUILD_SHARED_LIBS=ON -DCMAKE_ANDROID_STL_TYPE=c++_shared -DSFML_RUN_DISPLAY_TESTS=OFF -DSFML_RUN_AUDIO_DEVICE_TESTS=OFF
arch: x86 arch: x86
api: 21 api: 21
libcxx: i686-linux-android/libc++_shared.so libcxx: i686-linux-android/libc++_shared.so
@ -81,7 +81,7 @@ jobs:
- platform: { name: Android, os: ubuntu-22.04 } - platform: { name: Android, os: ubuntu-22.04 }
config: config:
name: x86_64 (API 24) name: x86_64 (API 24)
flags: -GNinja -DCMAKE_ANDROID_ARCH_ABI=x86_64 -DCMAKE_SYSTEM_NAME=Android -DCMAKE_SYSTEM_VERSION=24 -DCMAKE_ANDROID_NDK=$ANDROID_NDK_ROOT -DBUILD_SHARED_LIBS=TRUE -DCMAKE_ANDROID_STL_TYPE=c++_shared -DSFML_RUN_DISPLAY_TESTS=OFF -DSFML_RUN_AUDIO_DEVICE_TESTS=OFF flags: -GNinja -DCMAKE_ANDROID_ARCH_ABI=x86_64 -DCMAKE_SYSTEM_NAME=Android -DCMAKE_SYSTEM_VERSION=24 -DCMAKE_ANDROID_NDK=$ANDROID_NDK_ROOT -DBUILD_SHARED_LIBS=ON -DCMAKE_ANDROID_STL_TYPE=c++_shared -DSFML_RUN_DISPLAY_TESTS=OFF -DSFML_RUN_AUDIO_DEVICE_TESTS=OFF
arch: x86_64 arch: x86_64
api: 24 api: 24
libcxx: x86_64-linux-android/libc++_shared.so libcxx: x86_64-linux-android/libc++_shared.so
@ -91,7 +91,7 @@ jobs:
- platform: { name: Android, os: ubuntu-22.04 } - platform: { name: Android, os: ubuntu-22.04 }
config: config:
name: armeabi-v7a (API 29) name: armeabi-v7a (API 29)
flags: -GNinja -DCMAKE_ANDROID_ARCH_ABI=armeabi-v7a -DCMAKE_SYSTEM_NAME=Android -DCMAKE_SYSTEM_VERSION=29 -DCMAKE_ANDROID_NDK=$ANDROID_NDK_ROOT -DBUILD_SHARED_LIBS=TRUE -DCMAKE_ANDROID_STL_TYPE=c++_shared flags: -GNinja -DCMAKE_ANDROID_ARCH_ABI=armeabi-v7a -DCMAKE_SYSTEM_NAME=Android -DCMAKE_SYSTEM_VERSION=29 -DCMAKE_ANDROID_NDK=$ANDROID_NDK_ROOT -DBUILD_SHARED_LIBS=ON -DCMAKE_ANDROID_STL_TYPE=c++_shared
arch: armeabi-v7a arch: armeabi-v7a
api: 29 api: 29
# There are no emulators available for armeabi-v7a so we skip running the tests (we still build them) by not specifying emuapi # There are no emulators available for armeabi-v7a so we skip running the tests (we still build them) by not specifying emuapi
@ -99,7 +99,7 @@ jobs:
- platform: { name: Android, os: ubuntu-22.04 } - platform: { name: Android, os: ubuntu-22.04 }
config: config:
name: arm64-v8a (API 33) name: arm64-v8a (API 33)
flags: -GNinja -DCMAKE_ANDROID_ARCH_ABI=arm64-v8a -DCMAKE_SYSTEM_NAME=Android -DCMAKE_SYSTEM_VERSION=33 -DCMAKE_ANDROID_NDK=$ANDROID_NDK_ROOT -DBUILD_SHARED_LIBS=TRUE -DCMAKE_ANDROID_STL_TYPE=c++_shared -DSFML_RUN_DISPLAY_TESTS=OFF -DSFML_RUN_AUDIO_DEVICE_TESTS=OFF flags: -GNinja -DCMAKE_ANDROID_ARCH_ABI=arm64-v8a -DCMAKE_SYSTEM_NAME=Android -DCMAKE_SYSTEM_VERSION=33 -DCMAKE_ANDROID_NDK=$ANDROID_NDK_ROOT -DBUILD_SHARED_LIBS=ON -DCMAKE_ANDROID_STL_TYPE=c++_shared -DSFML_RUN_DISPLAY_TESTS=OFF -DSFML_RUN_AUDIO_DEVICE_TESTS=OFF
arch: arm64-v8a arch: arm64-v8a
api: 33 api: 33
libcxx: aarch64-linux-android/libc++_shared.so libcxx: aarch64-linux-android/libc++_shared.so
@ -345,7 +345,7 @@ jobs:
platform: platform:
- { name: Windows, os: windows-2022, flags: -GNinja } - { name: Windows, os: windows-2022, flags: -GNinja }
- { name: Linux, os: ubuntu-24.04 } - { name: Linux, os: ubuntu-24.04 }
- { name: Linux DRM, os: ubuntu-24.04, flags: -DSFML_USE_DRM=TRUE } - { name: Linux DRM, os: ubuntu-24.04, flags: -DSFML_USE_DRM=ON }
- { name: Linux OpenGL ES, os: ubuntu-24.04, flags: -DSFML_OPENGL_ES=ON } - { name: Linux OpenGL ES, os: ubuntu-24.04, flags: -DSFML_OPENGL_ES=ON }
- { name: macOS, os: macos-12 } - { name: macOS, os: macos-12 }
- { name: iOS, os: macos-12, flags: -DCMAKE_SYSTEM_NAME=iOS -DCMAKE_OSX_ARCHITECTURES=arm64 } - { name: iOS, os: macos-12, flags: -DCMAKE_SYSTEM_NAME=iOS -DCMAKE_OSX_ARCHITECTURES=arm64 }

View File

@ -43,37 +43,37 @@ include(GNUInstallDirs)
# disable static libraries on Android # disable static libraries on Android
if(SFML_OS_ANDROID) if(SFML_OS_ANDROID)
set(BUILD_SHARED_LIBS TRUE) set(BUILD_SHARED_LIBS ON)
endif() endif()
# add options to select which modules to build # add options to select which modules to build
sfml_set_option(SFML_BUILD_WINDOW TRUE BOOL "TRUE to build SFML's Window module. This setting is ignored, if the graphics module is built.") sfml_set_option(SFML_BUILD_WINDOW ON BOOL "ON to build SFML's Window module. This setting is ignored, if the graphics module is built.")
sfml_set_option(SFML_BUILD_GRAPHICS TRUE BOOL "TRUE to build SFML's Graphics module.") sfml_set_option(SFML_BUILD_GRAPHICS ON BOOL "ON to build SFML's Graphics module.")
sfml_set_option(SFML_BUILD_AUDIO TRUE BOOL "TRUE to build SFML's Audio module.") sfml_set_option(SFML_BUILD_AUDIO ON BOOL "ON to build SFML's Audio module.")
sfml_set_option(SFML_BUILD_NETWORK TRUE BOOL "TRUE to build SFML's Network module.") sfml_set_option(SFML_BUILD_NETWORK ON BOOL "ON to build SFML's Network module.")
if(SFML_BUILD_WINDOW) if(SFML_BUILD_WINDOW)
# add an option for choosing the OpenGL implementation # add an option for choosing the OpenGL implementation
sfml_set_option(SFML_OPENGL_ES ${OPENGL_ES} BOOL "TRUE to use an OpenGL ES implementation, FALSE to use a desktop OpenGL implementation") sfml_set_option(SFML_OPENGL_ES ${OPENGL_ES} BOOL "ON to use an OpenGL ES implementation, OFF to use a desktop OpenGL implementation")
# add an option for choosing whether to use the DRM windowing backend # add an option for choosing whether to use the DRM windowing backend
if(SFML_OS_LINUX) if(SFML_OS_LINUX)
sfml_set_option(SFML_USE_DRM FALSE BOOL "TRUE to use DRM windowing backend") sfml_set_option(SFML_USE_DRM OFF BOOL "ON to use DRM windowing backend")
endif() endif()
endif() endif()
# macOS specific options # macOS specific options
if(SFML_OS_MACOS OR SFML_OS_IOS) if(SFML_OS_MACOS OR SFML_OS_IOS)
# add an option to build frameworks instead of dylibs (release only) # add an option to build frameworks instead of dylibs (release only)
sfml_set_option(SFML_BUILD_FRAMEWORKS FALSE BOOL "TRUE to build SFML as frameworks libraries (release only), FALSE to build according to BUILD_SHARED_LIBS") sfml_set_option(SFML_BUILD_FRAMEWORKS OFF BOOL "ON to build SFML as frameworks libraries (release only), OFF to build according to BUILD_SHARED_LIBS")
# add an option to automatically install Xcode templates # add an option to automatically install Xcode templates
sfml_set_option(SFML_INSTALL_XCODE_TEMPLATES FALSE BOOL "TRUE to automatically install the Xcode templates, FALSE to do nothing about it. The templates are compatible with Xcode 4 and 5.") sfml_set_option(SFML_INSTALL_XCODE_TEMPLATES OFF BOOL "ON to automatically install the Xcode templates, OFF to do nothing about it. The templates are compatible with Xcode 4 and 5.")
endif() endif()
# Android options # Android options
if(SFML_OS_ANDROID) if(SFML_OS_ANDROID)
sfml_set_option(SFML_ANDROID_USE_SUSPEND_AWARE_CLOCK FALSE BOOL "TRUE to use an sf::Clock implementation which takes system sleep time into account (keeps advancing during suspension), FALSE to default to another available monotonic clock") sfml_set_option(SFML_ANDROID_USE_SUSPEND_AWARE_CLOCK OFF BOOL "ON to use an sf::Clock implementation which takes system sleep time into account (keeps advancing during suspension), OFF to default to another available monotonic clock")
if(SFML_ANDROID_USE_SUSPEND_AWARE_CLOCK) if(SFML_ANDROID_USE_SUSPEND_AWARE_CLOCK)
add_definitions(-DSFML_ANDROID_USE_SUSPEND_AWARE_CLOCK) add_definitions(-DSFML_ANDROID_USE_SUSPEND_AWARE_CLOCK)
endif() endif()
@ -103,13 +103,13 @@ endif()
# force building sfml-window, if sfml-graphics module is built # force building sfml-window, if sfml-graphics module is built
if(SFML_BUILD_GRAPHICS AND NOT SFML_BUILD_WINDOW) if(SFML_BUILD_GRAPHICS AND NOT SFML_BUILD_WINDOW)
message(WARNING "You're trying to build SFML's Graphics module without the Window module. Forcing building of the Window module as a dependency.") message(WARNING "You're trying to build SFML's Graphics module without the Window module. Forcing building of the Window module as a dependency.")
set(SFML_BUILD_WINDOW TRUE) set(SFML_BUILD_WINDOW ON)
endif() endif()
# allow not using bundled dependencies with a switch # allow not using bundled dependencies with a switch
# (except for stb_image) # (except for stb_image)
# yes this is horrible, but GLOB_RECURSE sucks # yes this is horrible, but GLOB_RECURSE sucks
sfml_set_option(SFML_USE_SYSTEM_DEPS FALSE BOOL "TRUE to use system dependencies, FALSE to use the bundled ones.") sfml_set_option(SFML_USE_SYSTEM_DEPS OFF BOOL "ON to use system dependencies, OFF to use the bundled ones.")
if(SFML_USE_SYSTEM_DEPS) if(SFML_USE_SYSTEM_DEPS)
if(SFML_INSTALL_XCODE_TEMPLATES) if(SFML_INSTALL_XCODE_TEMPLATES)
message(FATAL_ERROR "XCode templates installation cannot be used with the SFML_USE_SYSTEM_DEPS option (the bundled frameworks are required.)") message(FATAL_ERROR "XCode templates installation cannot be used with the SFML_USE_SYSTEM_DEPS option (the bundled frameworks are required.)")
@ -141,7 +141,7 @@ endif()
if(SFML_COMPILER_MSVC) if(SFML_COMPILER_MSVC)
# add an option to choose whether PDB debug symbols should be generated (defaults to true when possible) # add an option to choose whether PDB debug symbols should be generated (defaults to true when possible)
sfml_set_option(SFML_GENERATE_PDB TRUE BOOL "True to generate PDB debug symbols, FALSE otherwise.") sfml_set_option(SFML_GENERATE_PDB ON BOOL "True to generate PDB debug symbols, OFF otherwise.")
# if building using a compiler launcher, embed the MSVC debugging information to allow for caching # if building using a compiler launcher, embed the MSVC debugging information to allow for caching
if(CMAKE_CXX_COMPILER_LAUNCHER) if(CMAKE_CXX_COMPILER_LAUNCHER)
@ -157,14 +157,14 @@ endif()
# define an option for choosing between static and dynamic C runtime (Windows only) # define an option for choosing between static and dynamic C runtime (Windows only)
if(SFML_OS_WINDOWS) if(SFML_OS_WINDOWS)
sfml_set_option(SFML_USE_STATIC_STD_LIBS FALSE BOOL "TRUE to statically link to the standard libraries, FALSE to use them as DLLs") sfml_set_option(SFML_USE_STATIC_STD_LIBS OFF BOOL "ON to statically link to the standard libraries, OFF to use them as DLLs")
# the following combination of flags is not valid # the following combination of flags is not valid
if(BUILD_SHARED_LIBS AND SFML_USE_STATIC_STD_LIBS) if(BUILD_SHARED_LIBS AND SFML_USE_STATIC_STD_LIBS)
message(FATAL_ERROR "BUILD_SHARED_LIBS and SFML_USE_STATIC_STD_LIBS cannot be used together") message(FATAL_ERROR "BUILD_SHARED_LIBS and SFML_USE_STATIC_STD_LIBS cannot be used together")
endif() endif()
sfml_set_option(SFML_USE_MESA3D FALSE BOOL "TRUE to use the Mesa 3D graphics library for rendering, FALSE to use the system provided library for rendering") sfml_set_option(SFML_USE_MESA3D OFF BOOL "ON to use the Mesa 3D graphics library for rendering, OFF to use the system provided library for rendering")
include(cmake/Mesa3D.cmake) include(cmake/Mesa3D.cmake)
endif() endif()
@ -178,13 +178,13 @@ if(SFML_OS_MACOS)
if(SFML_BUILD_FRAMEWORKS) if(SFML_BUILD_FRAMEWORKS)
# requirement #1 # requirement #1
if(NOT CMAKE_BUILD_TYPE STREQUAL "Release") if(NOT CMAKE_BUILD_TYPE STREQUAL "Release")
message(FATAL_ERROR "CMAKE_BUILD_TYPE should be \"Release\" when SFML_BUILD_FRAMEWORKS is TRUE") message(FATAL_ERROR "CMAKE_BUILD_TYPE should be \"Release\" when SFML_BUILD_FRAMEWORKS is ON")
return() return()
endif() endif()
# requirement #2 # requirement #2
if(NOT BUILD_SHARED_LIBS) if(NOT BUILD_SHARED_LIBS)
message(FATAL_ERROR "BUILD_SHARED_LIBS should be TRUE when SFML_BUILD_FRAMEWORKS is TRUE") message(FATAL_ERROR "BUILD_SHARED_LIBS should be ON when SFML_BUILD_FRAMEWORKS is ON")
return() return()
endif() endif()
endif() endif()
@ -220,13 +220,13 @@ set_property(GLOBAL PROPERTY PREDEFINED_TARGETS_FOLDER "CMake")
add_subdirectory(src/SFML) add_subdirectory(src/SFML)
# on Linux and BSD-like OS, install pkg-config files by default # on Linux and BSD-like OS, install pkg-config files by default
set(SFML_INSTALL_PKGCONFIG_DEFAULT FALSE) set(SFML_INSTALL_PKGCONFIG_DEFAULT OFF)
if(SFML_OS_LINUX OR SFML_OS_FREEBSD OR SFML_OS_OPENBSD OR SFML_OS_NETBSD) if(SFML_OS_LINUX OR SFML_OS_FREEBSD OR SFML_OS_OPENBSD OR SFML_OS_NETBSD)
set(SFML_INSTALL_PKGCONFIG_DEFAULT TRUE) set(SFML_INSTALL_PKGCONFIG_DEFAULT ON)
endif() endif()
sfml_set_option(SFML_INSTALL_PKGCONFIG_FILES ${SFML_INSTALL_PKGCONFIG_DEFAULT} BOOL "TRUE to automatically install pkg-config files so other projects can find SFML") sfml_set_option(SFML_INSTALL_PKGCONFIG_FILES ${SFML_INSTALL_PKGCONFIG_DEFAULT} BOOL "ON to automatically install pkg-config files so other projects can find SFML")
if(SFML_INSTALL_PKGCONFIG_FILES) if(SFML_INSTALL_PKGCONFIG_FILES)
# account for CMAKE_INSTALL_LIBDIR potentially being an absolute path # account for CMAKE_INSTALL_LIBDIR potentially being an absolute path
@ -253,7 +253,7 @@ if(SFML_INSTALL_PKGCONFIG_FILES)
endif() endif()
# option to enable precompiled headers # option to enable precompiled headers
sfml_set_option(SFML_ENABLE_PCH FALSE BOOL "TRUE to enable precompiled headers for SFML builds -- only supported on Windows/Linux and for static library builds") sfml_set_option(SFML_ENABLE_PCH OFF BOOL "ON to enable precompiled headers for SFML builds -- only supported on Windows/Linux and for static library builds")
if(SFML_ENABLE_PCH AND BUILD_SHARED_LIBS) if(SFML_ENABLE_PCH AND BUILD_SHARED_LIBS)
message(FATAL_ERROR "Precompiled headers are currently not supported for shared library builds") message(FATAL_ERROR "Precompiled headers are currently not supported for shared library builds")
@ -310,7 +310,7 @@ else()
# edit target properties # edit target properties
set_target_properties(SFML PROPERTIES set_target_properties(SFML PROPERTIES
FRAMEWORK TRUE FRAMEWORK ON
FRAMEWORK_VERSION ${PROJECT_VERSION} FRAMEWORK_VERSION ${PROJECT_VERSION}
MACOSX_FRAMEWORK_IDENTIFIER org.sfml-dev.SFML MACOSX_FRAMEWORK_IDENTIFIER org.sfml-dev.SFML
MACOSX_FRAMEWORK_SHORT_VERSION_STRING ${PROJECT_VERSION} MACOSX_FRAMEWORK_SHORT_VERSION_STRING ${PROJECT_VERSION}
@ -368,7 +368,7 @@ else()
# NOTE: it's not required to link against SFML.framework # NOTE: it's not required to link against SFML.framework
set_target_properties(SFML PROPERTIES INSTALL_NAME_DIR "@rpath") set_target_properties(SFML PROPERTIES INSTALL_NAME_DIR "@rpath")
if(NOT CMAKE_SKIP_BUILD_RPATH) if(NOT CMAKE_SKIP_BUILD_RPATH)
set_target_properties(SFML PROPERTIES BUILD_WITH_INSTALL_NAME_DIR TRUE) set_target_properties(SFML PROPERTIES BUILD_WITH_INSTALL_NAME_DIR ON)
endif() endif()
# install rule # install rule
@ -476,7 +476,7 @@ endif()
sfml_export_targets() sfml_export_targets()
# configure extras by default when building SFML directly, otherwise hide them # configure extras by default when building SFML directly, otherwise hide them
sfml_set_option(SFML_CONFIGURE_EXTRAS ${PROJECT_IS_TOP_LEVEL} BOOL "TRUE to configure extras, FALSE to ignore them") sfml_set_option(SFML_CONFIGURE_EXTRAS ${PROJECT_IS_TOP_LEVEL} BOOL "ON to configure extras, OFF to ignore them")
if(NOT SFML_CONFIGURE_EXTRAS) if(NOT SFML_CONFIGURE_EXTRAS)
return() return()
@ -503,22 +503,22 @@ set(CPACK_NSIS_INSTALLER_MUI_ICON_CODE "!define MUI_WELCOMEFINISHPAGE_BITMAP \\\
include(CPack) include(CPack)
# add an option for building the API documentation # add an option for building the API documentation
sfml_set_option(SFML_BUILD_DOC FALSE BOOL "TRUE to generate the API documentation, FALSE to ignore it") sfml_set_option(SFML_BUILD_DOC OFF BOOL "ON to generate the API documentation, OFF to ignore it")
if(SFML_BUILD_DOC) if(SFML_BUILD_DOC)
add_subdirectory(doc) add_subdirectory(doc)
endif() endif()
# add an option for building the examples # add an option for building the examples
sfml_set_option(SFML_BUILD_EXAMPLES FALSE BOOL "TRUE to build the SFML examples, FALSE to ignore them") sfml_set_option(SFML_BUILD_EXAMPLES OFF BOOL "ON to build the SFML examples, OFF to ignore them")
if(SFML_BUILD_EXAMPLES AND NOT SFML_OS_ANDROID) if(SFML_BUILD_EXAMPLES AND NOT SFML_OS_ANDROID)
add_subdirectory(examples) add_subdirectory(examples)
endif() endif()
# add an option for building the test suite # add an option for building the test suite
sfml_set_option(SFML_BUILD_TEST_SUITE FALSE BOOL "TRUE to build the SFML test suite, FALSE to ignore it") sfml_set_option(SFML_BUILD_TEST_SUITE OFF BOOL "ON to build the SFML test suite, OFF to ignore it")
# add an option for enabling coverage reporting # add an option for enabling coverage reporting
sfml_set_option(SFML_ENABLE_COVERAGE FALSE BOOL "TRUE to enable coverage reporting, FALSE to ignore it") sfml_set_option(SFML_ENABLE_COVERAGE OFF BOOL "ON to enable coverage reporting, OFF to ignore it")
if(SFML_BUILD_TEST_SUITE) if(SFML_BUILD_TEST_SUITE)
if(SFML_BUILD_WINDOW AND SFML_BUILD_GRAPHICS AND SFML_BUILD_NETWORK AND SFML_BUILD_AUDIO) if(SFML_BUILD_WINDOW AND SFML_BUILD_GRAPHICS AND SFML_BUILD_NETWORK AND SFML_BUILD_AUDIO)

View File

@ -4,7 +4,7 @@
# Helper function to enable compiler warnings for a specific target # Helper function to enable compiler warnings for a specific target
function(set_target_warnings target) function(set_target_warnings target)
option(SFML_WARNINGS_AS_ERRORS "Treat compiler warnings as errors" FALSE) option(SFML_WARNINGS_AS_ERRORS "Treat compiler warnings as errors" OFF)
if(SFML_COMPILER_MSVC) if(SFML_COMPILER_MSVC)
target_compile_options(${target} PRIVATE target_compile_options(${target} PRIVATE

View File

@ -44,7 +44,7 @@ function(sfml_set_common_ios_properties target)
get_target_property(target_type ${target} TYPE) get_target_property(target_type ${target} TYPE)
if(target_type STREQUAL "EXECUTABLE") if(target_type STREQUAL "EXECUTABLE")
set_target_properties(${target} PROPERTIES set_target_properties(${target} PROPERTIES
MACOSX_BUNDLE TRUE # Bare executables are not usable on iOS, only bundle applications MACOSX_BUNDLE ON # Bare executables are not usable on iOS, only bundle applications
MACOSX_BUNDLE_GUI_IDENTIFIER "org.sfml-dev.${target}" # If missing, trying to launch an example in simulator will make Xcode < 9.3 crash MACOSX_BUNDLE_GUI_IDENTIFIER "org.sfml-dev.${target}" # If missing, trying to launch an example in simulator will make Xcode < 9.3 crash
MACOSX_BUNDLE_BUNDLE_NAME "${target}" MACOSX_BUNDLE_BUNDLE_NAME "${target}"
MACOSX_BUNDLE_LONG_VERSION_STRING "${PROJECT_VERSION}" MACOSX_BUNDLE_LONG_VERSION_STRING "${PROJECT_VERSION}"
@ -191,7 +191,7 @@ macro(sfml_add_library module)
if(SFML_BUILD_FRAMEWORKS) if(SFML_BUILD_FRAMEWORKS)
# adapt target to build frameworks instead of dylibs # adapt target to build frameworks instead of dylibs
set_target_properties(${target} PROPERTIES set_target_properties(${target} PROPERTIES
FRAMEWORK TRUE FRAMEWORK ON
FRAMEWORK_VERSION ${PROJECT_VERSION} FRAMEWORK_VERSION ${PROJECT_VERSION}
MACOSX_FRAMEWORK_IDENTIFIER org.sfml-dev.${target} MACOSX_FRAMEWORK_IDENTIFIER org.sfml-dev.${target}
MACOSX_FRAMEWORK_SHORT_VERSION_STRING ${PROJECT_VERSION} MACOSX_FRAMEWORK_SHORT_VERSION_STRING ${PROJECT_VERSION}
@ -203,7 +203,7 @@ macro(sfml_add_library module)
if(NOT CMAKE_SKIP_RPATH AND NOT CMAKE_SKIP_INSTALL_RPATH AND NOT CMAKE_INSTALL_RPATH AND NOT CMAKE_INSTALL_RPATH_USE_LINK_PATH AND NOT CMAKE_INSTALL_NAME_DIR) if(NOT CMAKE_SKIP_RPATH AND NOT CMAKE_SKIP_INSTALL_RPATH AND NOT CMAKE_INSTALL_RPATH AND NOT CMAKE_INSTALL_RPATH_USE_LINK_PATH AND NOT CMAKE_INSTALL_NAME_DIR)
set_target_properties(${target} PROPERTIES INSTALL_NAME_DIR "@rpath") set_target_properties(${target} PROPERTIES INSTALL_NAME_DIR "@rpath")
if(NOT CMAKE_SKIP_BUILD_RPATH) if(NOT CMAKE_SKIP_BUILD_RPATH)
set_target_properties(${target} PROPERTIES BUILD_WITH_INSTALL_NAME_DIR TRUE) set_target_properties(${target} PROPERTIES BUILD_WITH_INSTALL_NAME_DIR ON)
endif() endif()
endif() endif()
endif() endif()

View File

@ -60,7 +60,7 @@ if(SFML_OS_WINDOWS AND SFML_USE_MESA3D)
add_custom_target(install-mesa3d DEPENDS ${MESA3D_INSTALLED_FILES}) add_custom_target(install-mesa3d DEPENDS ${MESA3D_INSTALLED_FILES})
set_target_properties(install-mesa3d PROPERTIES EXCLUDE_FROM_ALL TRUE) set_target_properties(install-mesa3d PROPERTIES EXCLUDE_FROM_ALL ON)
elseif(SFML_OS_WINDOWS AND EXISTS "${MESA3D_ARCH_PATH}") elseif(SFML_OS_WINDOWS AND EXISTS "${MESA3D_ARCH_PATH}")
# we are removing the files # we are removing the files

View File

@ -17,11 +17,11 @@
# find_package(SFML 2.6 COMPONENTS ...) # version 2.6 or greater with the same major version # find_package(SFML 2.6 COMPONENTS ...) # version 2.6 or greater with the same major version
# #
# By default, the dynamic libraries of SFML will be found. To find the static ones instead, # By default, the dynamic libraries of SFML will be found. To find the static ones instead,
# you must set the SFML_STATIC_LIBRARIES variable to TRUE before calling find_package(SFML ...). # you must set the SFML_STATIC_LIBRARIES variable to ON before calling find_package(SFML ...).
# You don't need to deal with SFML's dependencies when linking your targets against SFML libraries, # You don't need to deal with SFML's dependencies when linking your targets against SFML libraries,
# they will all be configured automatically, even if you use SFML static libraries. # they will all be configured automatically, even if you use SFML static libraries.
# example: # example:
# set(SFML_STATIC_LIBRARIES TRUE) # set(SFML_STATIC_LIBRARIES ON)
# find_package(SFML 3 COMPONENTS Network System) # find_package(SFML 3 COMPONENTS Network System)
# #
# When searching for SFML with find_package(), keep in mind that it will also find versions which are # When searching for SFML with find_package(), keep in mind that it will also find versions which are
@ -35,7 +35,7 @@
# #
# On macOS by default CMake will search for frameworks. If you want to use static libraries and have installed # On macOS by default CMake will search for frameworks. If you want to use static libraries and have installed
# both SFML frameworks and SFML static libraries, your must set CMAKE_FIND_FRAMEWORK to "NEVER" or "LAST" # both SFML frameworks and SFML static libraries, your must set CMAKE_FIND_FRAMEWORK to "NEVER" or "LAST"
# in addition to setting SFML_STATIC_LIBRARIES to TRUE. Otherwise CMake will check the frameworks bundle config and # in addition to setting SFML_STATIC_LIBRARIES to ON. Otherwise CMake will check the frameworks bundle config and
# fail after finding out that it does not provide static libraries. Please refer to CMake documentation for more details. # fail after finding out that it does not provide static libraries. Please refer to CMake documentation for more details.
# #
# Additionally, keep in mind that SFML frameworks are only available as release libraries unlike dylibs which # Additionally, keep in mind that SFML frameworks are only available as release libraries unlike dylibs which
@ -119,8 +119,8 @@ set(targets_config_file "${CMAKE_CURRENT_LIST_DIR}/SFML${config_name}Targets.cma
# Generate imported targets for SFML and its dependencies # Generate imported targets for SFML and its dependencies
if(EXISTS "${targets_config_file}") if(EXISTS "${targets_config_file}")
# Set SFML_FOUND to TRUE by default, may be overwritten by one of the includes below # Set SFML_FOUND to ON by default, may be overwritten by one of the includes below
set(SFML_FOUND TRUE) set(SFML_FOUND ON)
include("${targets_config_file}") include("${targets_config_file}")
include("${CMAKE_CURRENT_LIST_DIR}/SFMLConfigDependencies.cmake") include("${CMAKE_CURRENT_LIST_DIR}/SFMLConfigDependencies.cmake")
@ -129,18 +129,18 @@ if(EXISTS "${targets_config_file}")
foreach(component ${SFML_FIND_COMPONENTS}) foreach(component ${SFML_FIND_COMPONENTS})
string(TOUPPER "${component}" UPPER_COMPONENT) string(TOUPPER "${component}" UPPER_COMPONENT)
set(SFML_${UPPER_COMPONENT}_FOUND FALSE) set(SFML_${UPPER_COMPONENT}_FOUND OFF)
if(TARGET SFML::${component}) if(TARGET SFML::${component})
set(SFML_${UPPER_COMPONENT}_FOUND TRUE) set(SFML_${UPPER_COMPONENT}_FOUND ON)
elseif(SFML_FIND_REQUIRED_${component}) elseif(SFML_FIND_REQUIRED_${component})
set(FIND_SFML_ERROR "Found SFML but requested component '${component}' is missing in the config defined in ${SFML_ROOT}.") set(FIND_SFML_ERROR "Found SFML but requested component '${component}' is missing in the config defined in ${SFML_ROOT}.")
set(SFML_FOUND FALSE) set(SFML_FOUND OFF)
endif() endif()
endforeach() endforeach()
endif() endif()
else() else()
set(FIND_SFML_ERROR "Requested SFML configuration (${config_name}) was not found") set(FIND_SFML_ERROR "Requested SFML configuration (${config_name}) was not found")
set(SFML_FOUND FALSE) set(SFML_FOUND OFF)
endif() endif()
if(NOT SFML_FOUND) if(NOT SFML_FOUND)

View File

@ -66,6 +66,6 @@ if(SFML_STATIC_LIBRARIES)
if(FIND_SFML_DEPENDENCIES_NOTFOUND) if(FIND_SFML_DEPENDENCIES_NOTFOUND)
set(FIND_SFML_ERROR "SFML found but some of its dependencies are missing (${FIND_SFML_DEPENDENCIES_NOTFOUND})") set(FIND_SFML_ERROR "SFML found but some of its dependencies are missing (${FIND_SFML_DEPENDENCIES_NOTFOUND})")
set(SFML_FOUND FALSE) set(SFML_FOUND OFF)
endif() endif()
endif() endif()

View File

@ -3,7 +3,7 @@ val ARCH_ABI by extra(project.properties["ARCH_ABI"] as? String ?: "arm64-v8a")
val MIN_SDK by extra((project.properties["MIN_SDK"] as? String ?: "21").toInt()) val MIN_SDK by extra((project.properties["MIN_SDK"] as? String ?: "21").toInt())
val TARGET_SDK by extra((project.properties["TARGET_SDK"] as? String ?: "33").toInt()) val TARGET_SDK by extra((project.properties["TARGET_SDK"] as? String ?: "33").toInt())
val STL_TYPE by extra(project.properties["STL_TYPE"] as? String ?: "c++_shared") val STL_TYPE by extra(project.properties["STL_TYPE"] as? String ?: "c++_shared")
val SFML_STATIC by extra(project.properties["SFML_STATIC"] as? String ?: "FALSE") val SFML_STATIC by extra(project.properties["SFML_STATIC"] as? String ?: "OFF")
plugins { plugins {
id("com.android.application") id("com.android.application")

View File

@ -55,6 +55,6 @@ sfml_add_example(cocoa
BUNDLE_RESOURCES ${RESOURCES} BUNDLE_RESOURCES ${RESOURCES}
DEPENDS SFML::Graphics) DEPENDS SFML::Graphics)
set_target_properties(cocoa PROPERTIES set_target_properties(cocoa PROPERTIES
MACOSX_BUNDLE TRUE MACOSX_BUNDLE ON
MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/resources/Cocoa-Info.plist) MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/resources/Cocoa-Info.plist)
target_link_libraries(cocoa PRIVATE "-framework Cocoa" "-framework Foundation") target_link_libraries(cocoa PRIVATE "-framework Cocoa" "-framework Foundation")

View File

@ -40,12 +40,12 @@ sfml_set_stdlib(Catch2)
sfml_set_stdlib(Catch2WithMain) sfml_set_stdlib(Catch2WithMain)
sfml_set_stdlib(sfml-test-main) sfml_set_stdlib(sfml-test-main)
sfml_set_option(SFML_RUN_DISPLAY_TESTS ON BOOL "TRUE to run tests that require a display, FALSE to ignore it") sfml_set_option(SFML_RUN_DISPLAY_TESTS ON BOOL "ON to run tests that require a display, OFF to ignore it")
if(SFML_RUN_DISPLAY_TESTS) if(SFML_RUN_DISPLAY_TESTS)
target_compile_definitions(sfml-test-main PRIVATE SFML_RUN_DISPLAY_TESTS) target_compile_definitions(sfml-test-main PRIVATE SFML_RUN_DISPLAY_TESTS)
endif() endif()
sfml_set_option(SFML_RUN_AUDIO_DEVICE_TESTS ON BOOL "TRUE to run tests that require an audio device, FALSE to ignore it") sfml_set_option(SFML_RUN_AUDIO_DEVICE_TESTS ON BOOL "ON to run tests that require an audio device, OFF to ignore it")
if(SFML_RUN_AUDIO_DEVICE_TESTS) if(SFML_RUN_AUDIO_DEVICE_TESTS)
target_compile_definitions(sfml-test-main PRIVATE SFML_RUN_AUDIO_DEVICE_TESTS) target_compile_definitions(sfml-test-main PRIVATE SFML_RUN_AUDIO_DEVICE_TESTS)
endif() endif()

View File

@ -4,7 +4,7 @@ project(test-sfml-install CXX)
# This skips the find_package call when building via add_subdirectory since that will fail under those circumstances # This skips the find_package call when building via add_subdirectory since that will fail under those circumstances
if(PROJECT_IS_TOP_LEVEL) if(PROJECT_IS_TOP_LEVEL)
if(NOT BUILD_SHARED_LIBS) if(NOT BUILD_SHARED_LIBS)
set(SFML_STATIC_LIBRARIES TRUE) set(SFML_STATIC_LIBRARIES ON)
endif() endif()
# cmake by default will only search inside the iOS SDK for packages/libraries, so we need to tell it to look elsewhere # cmake by default will only search inside the iOS SDK for packages/libraries, so we need to tell it to look elsewhere

View File

@ -50,7 +50,7 @@ http://developer.apple.com/library/ios/#documentation/ToolsLanguages/Conceptual/
Install Install
------- -------
If you are building SFML from sources you can set CMake's INSTALL_XCODE_TEMPLATES variable to TRUE If you are building SFML from sources you can set CMake's INSTALL_XCODE_TEMPLATES variable to ON
to install the templates automatically. to install the templates automatically.