@@ -10,41 +10,44 @@ set(CMAKE_CXX_STANDARD 14)
10
10
set (CMAKE_CXX_STANDARD_REQUIRED ON )
11
11
12
12
13
+ file (GLOB_RECURSE SHADERS
14
+ ${CMAKE_SOURCE_DIR} /src/shaders/*.glsl
15
+ )
16
+
13
17
file (GLOB_RECURSE SRC_FILES
14
- ${CMAKE_SOURCE_DIR} /PathTracer /*.h
15
- ${CMAKE_SOURCE_DIR} /PathTracer /*.cpp
18
+ ${CMAKE_SOURCE_DIR} /src /*.h
19
+ ${CMAKE_SOURCE_DIR} /src /*.cpp
16
20
)
21
+
17
22
file (GLOB EXT_FILES
18
- ${CMAKE_SOURCE_DIR} /thirdparty/SOIL/src/*.h
19
- ${CMAKE_SOURCE_DIR} /thirdparty/SOIL/src/*.c
20
- ${CMAKE_SOURCE_DIR} /thirdparty/RadeonRays/*.h
21
- ${CMAKE_SOURCE_DIR} /thirdparty/RadeonRays/*.cpp
23
+ ${CMAKE_SOURCE_DIR} /thirdparty/stb/*.h
22
24
${CMAKE_SOURCE_DIR} /thirdparty/imgui/*.h
23
25
${CMAKE_SOURCE_DIR} /thirdparty/imgui/*.cpp
24
26
${CMAKE_SOURCE_DIR} /thirdparty/imguizmo/*.h
25
- ${CMAKE_SOURCE_DIR} /thirdparty/imguizmo/*.cpp
26
- )
27
-
28
- if (NOT EMSCRIPTEN)
29
- file (GLOB EXT_FILES_SPECIFIC
27
+ ${CMAKE_SOURCE_DIR} /thirdparty/imguizmo/*.cpp
28
+ ${CMAKE_SOURCE_DIR} /thirdparty/RadeonRays/*.h
29
+ ${CMAKE_SOURCE_DIR} /thirdparty/RadeonRays/*.cpp
30
30
${CMAKE_SOURCE_DIR} /thirdparty/gl3w/GL/*.c
31
31
)
32
- set (SDL2_LIBRARIES "SDL2" "SDL2main" )
33
- endif ()
34
32
33
+ set (SRCS ${SRC_FILES} ${EXT_FILES} ${SHADERS} )
35
34
35
+ set (SDL2_LIBRARIES "SDL2" "SDL2main" )
36
36
set (SDL2_INCLUDE_DIRS ${CMAKE_SOURCE_DIR} /thirdparty/SDL2/include )
37
37
set (SDL2_LIBDIR ${CMAKE_SOURCE_DIR} /thirdparty/SDL2/lib/x64)
38
38
39
39
include_directories (
40
- ${CMAKE_CURRENT_SOURCE_DIR} /PathTracer
40
+ ${CMAKE_SOURCE_DIR} /src/core
41
+ ${CMAKE_SOURCE_DIR} /src/loaders
42
+ ${CMAKE_SOURCE_DIR} /src/tests
41
43
${CMAKE_SOURCE_DIR} /thirdparty/glm
42
44
${CMAKE_SOURCE_DIR} /thirdparty/imgui
43
- ${CMAKE_SOURCE_DIR} /thirdparty/RadeonRays
44
45
${CMAKE_SOURCE_DIR} /thirdparty/glew/include
45
- ${CMAKE_SOURCE_DIR} /thirdparty/SOIL/ include
46
+ ${CMAKE_SOURCE_DIR} /thirdparty/stb
46
47
${CMAKE_SOURCE_DIR} /thirdparty/gl3w
47
48
${CMAKE_SOURCE_DIR} /thirdparty/imguizmo
49
+ ${CMAKE_SOURCE_DIR} /thirdparty/RadeonRays
50
+ ${CMAKE_SOURCE_DIR} /thirdparty/tinydir
48
51
${SDL2_INCLUDE_DIRS}
49
52
)
50
53
@@ -53,25 +56,7 @@ link_directories(
53
56
)
54
57
find_package (OpenGL)
55
58
56
-
57
- #######################################################################################
58
-
59
- #set (USE_MSVC_RUNTIME_LIBRARY_DLL true)
60
- #IF (NOT USE_MSVC_RUNTIME_LIBRARY_DLL)
61
- # #We statically link to reduce dependancies
62
- # FOREACH(flag_var CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELWITHDEBINFO CMAKE_CXX_FLAGS_RETAIL)
63
- # IF(${flag_var} MATCHES "/MD")
64
- # STRING(REGEX REPLACE "/MD" "/MT" ${flag_var} "${${flag_var}}")
65
- # ENDIF(${flag_var} MATCHES "/MD")
66
- # IF(${flag_var} MATCHES "/MDd")
67
- # STRING(REGEX REPLACE "/MDd" "/MTd" ${flag_var} "${${flag_var}}")
68
- # ENDIF(${flag_var} MATCHES "/MDd")
69
- # ENDFOREACH(flag_var)
70
- #ENDIF (NOT USE_MSVC_RUNTIME_LIBRARY_DLL)
71
-
72
- #######################################################################################
73
-
74
- foreach (f ${SRC_FILES} )
59
+ foreach (f ${SRCS} )
75
60
# Get the path of the file relative to ${DIRECTORY},
76
61
# then alter it (not compulsory)
77
62
file (RELATIVE_PATH SRCGR ${CMAKE_SOURCE_DIR} ${f} )
@@ -85,9 +70,7 @@ foreach(f ${SRC_FILES})
85
70
source_group ("${SRCGR} " FILES ${f} )
86
71
endforeach ()
87
72
88
- set (ENABLE_HIDECONSOLE_BUILD TRUE CACHE BOOL "TRUE to hide console for Windows sys" )
89
-
90
- if (WINDOWS)
73
+ if (WIN32 )
91
74
set (GUI_TYPE WIN32 )
92
75
elseif (MACOSX)
93
76
set (GUI_TYPE MACOSX_BUNDLE )
@@ -101,9 +84,13 @@ endif()
101
84
SET (LINK_OPTIONS " " )
102
85
SET (EXE_NAME "PathTracer" )
103
86
104
- ADD_EXECUTABLE (${EXE_NAME} ${SRC_FILES} ${EXT_FILES} ${EXT_FILES_SPECIFIC } )
87
+ ADD_EXECUTABLE (${EXE_NAME} ${SRCS } )
105
88
89
+ if (WIN32 )
106
90
TARGET_LINK_LIBRARIES (${EXE_NAME} ${OPENGL_LIBRARIES} ${SDL2_LIBRARIES} )
91
+ else ()
92
+ TARGET_LINK_LIBRARIES (${EXE_NAME} ${OPENGL_LIBRARIES} ${SDL2_LIBRARIES} dl)
93
+ endif ()
107
94
108
95
#--------------------------------------------------------------------
109
96
# preproc
@@ -126,53 +113,26 @@ add_definitions(-DGLEW_STATIC)
126
113
# output dirs
127
114
#--------------------------------------------------------------------
128
115
129
- set_target_properties (${EXE_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_SOURCE_DIR} /bin )
130
- set_target_properties (${EXE_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_SOURCE_DIR} /bin )
131
- set_target_properties (${EXE_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO ${CMAKE_SOURCE_DIR} /bin )
116
+ set_target_properties (${EXE_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_CURRENT_BINARY_DIR} )
117
+ set_target_properties (${EXE_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_CURRENT_BINARY_DIR} )
118
+ set_target_properties (${EXE_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO ${CMAKE_CURRENT_BINARY_DIR} )
132
119
set_target_properties (${EXE_NAME} PROPERTIES DEBUG_POSTFIX "_d" )
133
120
set_target_properties (${EXE_NAME} PROPERTIES RELWITHDEBINFO_POSTFIX "RelWithDebInfo" )
134
- set_target_properties (${EXE_NAME} PROPERTIES VS_DEBUGGER_WORKING_DIRECTORY "${CMAKE_SOURCE_DIR} /bin" )
135
-
136
- #--------------------------------------------------------------------
137
- # Hide the console window in visual studio projects
138
- #--------------------------------------------------------------------
139
- if (ENABLE_HIDECONSOLE_BUILD)
140
- if (MSVC )
141
- set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /SUBSYSTEM:WINDOWS /ENTRY:mainCRTStartup" )
142
- set (CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS} /SUBSYSTEM:WINDOWS /ENTRY:mainCRTStartup" )
143
- endif ()
144
- endif ()
121
+ set_target_properties (${EXE_NAME} PROPERTIES VS_DEBUGGER_WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR} " )
145
122
146
- if (WINDOWS )
147
- set_target_properties (${EXE_NAME} PROPERTIES LINK_FLAGS_DEBUG "/SUBSYSTEM:WINDOWS " )
148
- set_target_properties (${EXE_NAME} PROPERTIES LINK_FLAGS_RELEASE "/SUBSYSTEM:WINDOWS " )
123
+ if (WIN32 )
124
+ set_target_properties (${EXE_NAME} PROPERTIES LINK_FLAGS_DEBUG "/SUBSYSTEM:CONSOLE " )
125
+ set_target_properties (${EXE_NAME} PROPERTIES LINK_FLAGS_RELEASE "/SUBSYSTEM:CONSOLE " )
149
126
endif ()
150
127
151
- if (EMSCRIPTEN)
152
- add_definitions (-DEMSCRIPTEN)
153
- add_definitions (-D_X86_)
154
- set (EMS_OPTS "-s USE_SDL=2 -s USE_WEBGL2=1 -s WASM=1 -s ALLOW_MEMORY_GROWTH=1 -s BINARYEN_TRAP_MODE=clamp --bind -O2 --no-heap-copy -g4 --source-map-base localhost:8000" )
155
- add_definitions (${EMS_OPTS} )
156
- set (EMS_PRELOAD " --preload-file assets --preload-file shaders" )
157
- set (EMS_LINK "${EMS_OPTS} ${EMS_PRELOAD} " )
158
- set_target_properties (${EXE_NAME} PROPERTIES LINK_FLAGS ${EMS_LINK} )
159
-
160
- add_custom_command (TARGET ${EXE_NAME} PRE_BUILD
161
- COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_SOURCE_DIR} /bin/assets ${CMAKE_CURRENT_BINARY_DIR} /assets
128
+ add_custom_command (TARGET ${EXE_NAME} POST_BUILD
129
+ COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_SOURCE_DIR} /assets ${CMAKE_CURRENT_BINARY_DIR} /assets
162
130
)
163
- add_custom_command (TARGET ${EXE_NAME} PRE_BUILD
164
- COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_SOURCE_DIR} /PathTracer /shaders ${CMAKE_CURRENT_BINARY_DIR} /shaders
131
+ add_custom_command (TARGET ${EXE_NAME} POST_BUILD
132
+ COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_SOURCE_DIR} /src /shaders ${CMAKE_CURRENT_BINARY_DIR} /shaders
165
133
)
166
-
134
+ if ( WIN32 )
167
135
add_custom_command (TARGET ${EXE_NAME} POST_BUILD
168
- COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR} /PathTracer/index.html ${CMAKE_CURRENT_BINARY_DIR} /index.html
136
+ COMMAND ${CMAKE_COMMAND} -E copy ${SDL2_LIBDIR} /SDL2.dll ${CMAKE_CURRENT_BINARY_DIR}
169
137
)
170
-
171
-
172
- endif ()
173
-
174
- if (ENABLE_HIDECONSOLE_BUILD)
175
- MESSAGE (STATUS "Console is hidden" )
176
- else ()
177
- MESSAGE (STATUS "Console is visible" )
178
138
endif ()
0 commit comments