cmake_minimum_required(VERSION 3.3 FATAL_ERROR) project(padlab C) set(TARGET padlab) option(USE_METAL "use Metal for drawing" ${APPLE}) if (USE_METAL) option(USE_OPENGL "Use OpenGL for drawing (WIP)" OFF) option(USE_OPENGL_LEGACY "Use legacy OpenGL for drawing" OFF) 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)") endif() else() 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() endif() list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake") set(CMAKE_C_STANDARD 99) set(GNU_COMPILERS GNU Clang AppleClang) if (CMAKE_C_COMPILER_ID IN_LIST GNU_COMPILERS) set(GNU 1) elseif (MSVC) string(REPLACE "/W3" "/W4" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}") endif() find_package(SDL2 REQUIRED) if (USE_OPENGL OR USE_OPENGL_LEGACY) if (NOT DEFINED OpenGL_GL_PREFERENCE) set(OpenGL_GL_PREFERENCE "GLVND") endif() find_package(OpenGL REQUIRED) endif() add_subdirectory(src)