1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106
|
CMAKE_MINIMUM_REQUIRED(VERSION 3.5)
####################### BEGIN - Backend agnostic upstream dependencies #####################
if(USE_HUNTER)
hunter_add_package(Boost COMPONENTS system filesystem)
find_package(Boost REQUIRED COMPONENTS system filesystem)
hunter_add_package(glm)
find_package(glm CONFIG REQUIRED)
hunter_add_package(freetype)
find_package(freetype REQUIRED)
else()
FIND_PACKAGE(Boost REQUIRED)
OPTION(USE_SYSTEM_GLM "Use the system GLM library" OFF)
IF(USE_SYSTEM_GLM)
FIND_PACKAGE(glm REQUIRED)
ELSE()
INCLUDE(build_glm)
ENDIF()
OPTION(USE_SYSTEM_FREETYPE "Use the system Freetype library" OFF)
IF(USE_SYSTEM_FREETYPE)
FIND_PACKAGE(Freetype REQUIRED)
ELSE()
INCLUDE(build_freetype)
ENDIF()
endif()
INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIRS})
INCLUDE_DIRECTORIES(${GLM_INCLUDE_DIRS})
INCLUDE_DIRECTORIES(${FREETYPE_INCLUDE_DIRS})
IF(UNIX)
FIND_PACKAGE(FontConfig REQUIRED)
INCLUDE_DIRECTORIES("${FONTCONFIG_INCLUDE_DIR}")
ENDIF(UNIX)
if(USE_FREEIMAGE)
FIND_PACKAGE(FreeImage REQUIRED)
INCLUDE_DIRECTORIES(${FREEIMAGE_INCLUDE_PATH})
ADD_DEFINITIONS(-DUSE_FREEIMAGE)
endif()
SET(USE_WINDOW_TOOLKIT "glfw3" CACHE STRING "Choose Window toolkit")
SET_PROPERTY(CACHE USE_WINDOW_TOOLKIT PROPERTY STRINGS "glfw3" "sdl2")
IF(${USE_WINDOW_TOOLKIT} STREQUAL "glfw3")
#FIXME LATER: glfw3Config.cmake file provided by glfw 3.*
# is found on different locations in different linux/unix
# distributions, thus causing glfw3 not found errors.
# DON'T REPLACE GLFW with glfw3 in find_package command.
FIND_PACKAGE(GLFW REQUIRED)
IF(GLFW_FOUND)
SET(WTK_INCLUDE_DIRS ${GLFW_INCLUDE_DIR})
SET(WTK_LIBRARIES ${GLFW_LIBRARY})
ADD_DEFINITIONS(-DUSE_GLFW)
ELSE(GLFW_FOUND)
MESSAGE(FATAL_ERROR "GLFW not found")
ENDIF(GLFW_FOUND)
ENDIF()
IF(${USE_WINDOW_TOOLKIT} STREQUAL "sdl2")
FIND_PACKAGE(SDL2 REQUIRED)
IF(SDL2_FOUND)
SET(WTK_INCLUDE_DIRS ${SDL2_INCLUDE_DIR})
SET(WTK_LIBRARIES ${SDL2_LIBRARY})
ADD_DEFINITIONS(-DUSE_SDL)
ELSE(SDL2_FOUND)
MESSAGE(FATAL_ERROR "SDL2 not found")
ENDIF(SDL2_FOUND)
ENDIF()
####################### END - Backend agnostic upstream dependencies #######################
ADD_EXECUTABLE(glsl2cpp "${PROJECT_SOURCE_DIR}/CMakeModules/glsl2cpp.cpp")
INCLUDE(GLSLtoH)
SET(glsl_shader_headers "shader_headers")
FILE(GLOB glsl_shaders "glsl_shaders/*.glsl")
LIST(SORT glsl_shaders)
SOURCE_GROUP("src\\backend\\glsl_shaders" FILES ${glsl_shaders})
GLSL_TO_H(
SOURCES ${glsl_shaders}
VARNAME shader_files
EXTENSION "hpp"
OUTPUT_DIR ${glsl_shader_headers}
TARGETS glsl_shader_targets
NAMESPACE "glsl"
EOD "0"
)
# DON'T REMOVE CURRENT BINARY DIRECTORY FROM
# INCLUDE_DIRECTORIES, IT IS USED TO FIND
# AUTO-GENERATED GLSL HEADERS
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR})
ADD_SUBDIRECTORY(opengl)
|