Files
padlab/CMakeLists.txt

44 lines
1.5 KiB
CMake
Raw Normal View History

2022-11-19 03:03:02 +11:00
cmake_minimum_required(VERSION 3.3 FATAL_ERROR)
2022-10-06 18:57:58 +11:00
project(padlab C)
set(TARGET padlab)
2022-11-19 00:42:33 +11:00
option(USE_METAL "use Metal for drawing" ${APPLE})
if (USE_METAL)
option(USE_OPENGL "Use OpenGL for drawing (WIP)" OFF)
2022-11-19 03:03:02 +11:00
option(USE_OPENGL_LEGACY "Use legacy OpenGL for drawing" OFF)
2022-11-19 00:42:33 +11:00
if (USE_OPENGL)
message(FATAL_ERROR "USE_METAL and USE_OPENGL are both ON but only one backend can be used at a time, turn one OFF and regenerate. (or delete cache and try again)")
elseif (USE_OPENGL_LEGACY)
message(FATAL_ERROR "USE_METAL and USE_OPENGL_LEGACY are both ON but only one backend can be used at a time, turn one OFF and regenerate. (or delete cache and try again)")
2022-11-19 03:03:02 +11:00
endif()
else()
2022-11-19 00:42:33 +11:00
option(USE_OPENGL "Use OpenGL for drawing (WIP)" OFF)
if (USE_OPENGL)
option(USE_OPENGL_LEGACY "Use legacy OpenGL for drawing" OFF)
if (USE_OPENGL_LEGACY)
message(FATAL_ERROR "USE_OPENGL and USE_OPENGL_LEGACY are both ON but only one backend can be used at a time, turn one OFF and regenerate. (or delete cache and try again)")
endif()
else()
option(USE_OPENGL_LEGACY "Use legacy OpenGL for drawing" ON)
endif()
2022-11-19 03:03:02 +11:00
endif()
2022-11-19 03:03:02 +11:00
list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake")
2022-11-16 09:20:44 +11:00
set(CMAKE_C_STANDARD 99)
2023-01-18 23:45:17 +11:00
set(GNU_COMPILERS GNU Clang AppleClang)
if (CMAKE_C_COMPILER_ID IN_LIST GNU_COMPILERS)
set(GNU 1)
2022-11-22 08:01:41 +11:00
elseif (MSVC)
string(REPLACE "/W3" "/W4" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
endif()
2022-11-16 09:20:44 +11:00
find_package(SDL2 REQUIRED)
2022-11-19 03:03:02 +11:00
if (USE_OPENGL OR USE_OPENGL_LEGACY)
2023-01-18 23:45:17 +11:00
if (NOT DEFINED OpenGL_GL_PREFERENCE)
set(OpenGL_GL_PREFERENCE "GLVND")
endif()
find_package(OpenGL REQUIRED)
endif()
2022-11-19 03:03:02 +11:00
add_subdirectory(src)