File: CMakeLists.txt

package info (click to toggle)
forge 1.0.1-5
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 2,312 kB
  • sloc: cpp: 12,447; ansic: 319; xml: 182; makefile: 19
file content (106 lines) | stat: -rw-r--r-- 2,976 bytes parent folder | download
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)