#[[ Abstractions and Models are NOT at WAR! - Cobwoy's Talisman But Abstractions don't care and Models can't understand!! - Lul, Practicality ]] cmake_minimum_required(VERSION 3.1...3.17 FATAL_ERROR) project(GLFW VERSION 3.4.0 LANGUAGES C) set(GLFW_LIB_NAME GLFW) list(APPEND CMAKE_MODULE_PATH "${GLFW_SOURCE_DIR}/CMake/modules") find_package(Threads REQUIRED) include(CMakeDependentOption) if (GLFW_USE_OSMESA) message(FATAL_ERROR "GLFW_USE_OSMESA has been removed; set the GLFW_PLATFORM init hint") endif() cmake_dependent_option(GLFW_BUILD_WIN32 "Build support for Win32" ON "WIN32" OFF) cmake_dependent_option(GLFW_BUILD_COCOA "Build support for Cocoa" ON "APPLE" OFF) cmake_dependent_option(GLFW_BUILD_X11 "Build support for X11" ON "UNIX;NOT APPLE" OFF) cmake_dependent_option(GLFW_BUILD_WAYLAND "Build support for Wayland" "${GLFW_USE_WAYLAND}" "UNIX;NOT APPLE" OFF) cmake_dependent_option(GLFW_USE_HYBRID_HPG "Force use of high-performance GPU on hybrid systems" OFF "WIN32" OFF) cmake_dependent_option(USE_MSVC_RUNTIME_LIBRARY_DLL "Use MSVC runtime library DLL" ON "MSVC" OFF) option(GLFW_VULKAN_STATIC "Assume the Vulkan loader is linked with the application" OFF) #-------------------------------------------------------------------- # Report backend selection #-------------------------------------------------------------------- if (GLFW_BUILD_WIN32) message(STATUS "Including Win32 support") endif() if (GLFW_BUILD_COCOA) message(STATUS "Including Cocoa support") endif() if (GLFW_BUILD_WAYLAND) message(STATUS "Including Wayland support") endif() if (GLFW_BUILD_X11) message(STATUS "Including X11 support") endif() #-------------------------------------------------------------------- # Apply Microsoft C runtime library option # This is here because it also applies to tests and examples #-------------------------------------------------------------------- if (MSVC AND NOT USE_MSVC_RUNTIME_LIBRARY_DLL) if (CMAKE_VERSION VERSION_LESS 3.15) foreach (flag CMAKE_C_FLAGS CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_RELEASE CMAKE_C_FLAGS_MINSIZEREL CMAKE_C_FLAGS_RELWITHDEBINFO) if (flag MATCHES "/MD") string(REGEX REPLACE "/MD" "/MT" ${flag} "${${flag}}") endif() if (flag MATCHES "/MDd") string(REGEX REPLACE "/MDd" "/MTd" ${flag} "${${flag}}") endif() endforeach() else() set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$:Debug>") endif() endif() #-------------------------------------------------------------------- # Create generated files #-------------------------------------------------------------------- include(CMakePackageConfigHelpers) set(GLFW_CONFIG_PATH "${CMAKE_INSTALL_LIBDIR}/cmake/glfw3") configure_package_config_file(CMake/glfw3Config.cmake.in src/glfw3Config.cmake INSTALL_DESTINATION "${GLFW_CONFIG_PATH}" NO_CHECK_REQUIRED_COMPONENTS_MACRO) write_basic_package_version_file(src/glfw3ConfigVersion.cmake VERSION ${GLFW_VERSION} COMPATIBILITY SameMajorVersion) #-------------------------------------------------------------------- # Add subdirectories #-------------------------------------------------------------------- add_subdirectory(src) #[[ * /\ * / / * /\| | * | | |/\ * | | / / * | ` / * `\ (___ * _.-> ,-.-. * _.' | \ \ * / _____| 0 |0\ * | /` `^-.\.-'`-._ * | | `-._ * | : `. * \ `._ `-.__ O.' * _.--, \ `._ __.^--._O_..-' * `---, `. `\ /` ` ` * `\ `, `\ | * | : ; | * / `. ___|__|___ * / `. ( ) * / `---.:____...---' `--------`. * / ( `. __ `. * | `---------' _ / \ \ * | .-. _._ (_) `--' \ * | ( ) / \ \ * \ `-' \ / ;-._ * \ `-' \ .' `. * /`. `\ `\ _.-'`-. `.___ * | `-._ `\ `\.-' `-. ,--` * \ `--.___ ___`\ \ ||^\\ * `._ | ``----'' `. `\ `' ` * `--; \ jgs `. `. * //^||^\\ //^||^\\ * ' `' ` ' ' ` ]]