File: libRocket.cmake

package info (click to toggle)
freespace2 24.2.0%2Brepack-1
  • links: PTS, VCS
  • area: non-free
  • in suites: forky, sid
  • size: 43,716 kB
  • sloc: cpp: 595,001; ansic: 21,741; python: 1,174; sh: 457; makefile: 248; xml: 181
file content (116 lines) | stat: -rw-r--r-- 3,599 bytes parent folder | download | duplicates (2)
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
107
108
109
110
111
112
113
114
115
116
#===================================
# Build script for libRocket =======
#===================================

INCLUDE_DIRECTORIES("/usr/include/lua5.1/")
set(LIBROCKET_DIR "${CMAKE_CURRENT_SOURCE_DIR}/libRocket")

if(COMMAND cmake_policy)
  cmake_policy(SET CMP0015 NEW)
endif(COMMAND cmake_policy)

# Search in the 'cmake' directory for additional CMake modules.
list(APPEND CMAKE_MODULE_PATH ${LIBROCKET_DIR}/Build/cmake)
set(PROJECT_SOURCE_DIR "${LIBROCKET_DIR}")

#===================================
# Environment tests ================
#===================================

include(TestForANSIForScope)
include(TestForANSIStreamHeaders)
include(TestForSTDNamespace)

#===================================
# Plaform specific global hacks ====
#===================================

if(APPLE)
	# Disables naked builtins from AssertMacros.h which
	# This prevents naming collisions such as those from the check()
	# function macro with LuaType::check
	add_definitions(-D__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES=0)
endif(APPLE)

#===================================
# Find dependencies ================
#===================================

# FreeType
#find_package(Freetype REQUIRED)7

#===================================
# Setup paths ======================
#===================================

# Include list of source files
include(FileList)

#===================================
# Build libraries ==================
#===================================
set(LIBRARIES Core Controls Debugger)

foreach(library ${LIBRARIES})
    set(NAME Rocket${library})

    add_library(${NAME}
                ${${library}_HDR_FILES}
                ${${library}_PUB_HDR_FILES}
                ${MASTER_${library}_PUB_HDR_FILES}
                ${${library}_SRC_FILES}
    )
    target_include_directories(${NAME} PUBLIC "${PROJECT_SOURCE_DIR}/Include")
    target_link_libraries(${NAME} PUBLIC compiler)
    suppress_warnings(${NAME})

    if(NOT BUILD_SHARED_LIBS)
    	target_compile_definitions(${NAME} PUBLIC ROCKET_STATIC_LIB)
        target_compile_definitions(${NAME} PRIVATE ROCKET_VERSION="FSO")
    endif()

    set_target_properties(${NAME}
            PROPERTIES
            FOLDER "3rdparty/libRocket"
            )
endforeach(library)

# Build Lua bindings
set(LIBRARIES Core Controls)

foreach(library ${LIBRARIES})
    set(NAME Rocket${library}Lua)

    add_library(${NAME} ${Lua${library}_SRC_FILES}
                        ${Lua${library}_HDR_FILES}
                        ${Lua${library}_PUB_HDR_FILES}
    )
    target_include_directories(${NAME} PUBLIC "${PROJECT_SOURCE_DIR}/Include")
    target_link_libraries(${NAME} PUBLIC compiler)
    suppress_warnings(${NAME})

    if(NOT BUILD_SHARED_LIBS)
        target_compile_definitions(${NAME} PUBLIC ROCKET_STATIC_LIB)
        target_compile_definitions(${NAME} PRIVATE ROCKET_VERSION="FSO")
    endif()

    set_target_properties(${NAME}
            PROPERTIES
            FOLDER "3rdparty/libRocket/Lua"
            )
endforeach(library)


#===================================
# Link libraries ===================
#===================================

target_link_libraries(RocketCore PUBLIC freetype)
target_link_libraries(RocketControls PUBLIC RocketCore)
target_link_libraries(RocketDebugger PUBLIC RocketCore)

target_link_libraries(RocketCoreLua PUBLIC RocketCore ${LUA_LIBS})
target_link_libraries(RocketControlsLua PUBLIC RocketControls RocketCoreLua ${LUA_LIBS})

add_library(libRocket INTERFACE)
target_link_libraries(libRocket INTERFACE RocketCore RocketControls RocketDebugger RocketCoreLua RocketControlsLua)