91 lines
2.8 KiB
CMake
91 lines
2.8 KiB
CMake
cmake_minimum_required(VERSION 3.15...3.50)
|
|||
|
|
set(CMAKE_CXX_STANDARD 17)
|
||
|
|
|
||
|
|
list(APPEND CMAKE_PREFIX_PATH "../Libraries/")
|
||
|
|
list(APPEND CMAKE_PREFIX_PATH "../Libraries/glew-2.3.1")
|
||
|
|
list(APPEND CMAKE_PREFIX_PATH "C:/Program Files (x86)/GLFW")
|
||
|
|
|
||
|
|
project(
|
||
|
|
HydraEngine
|
||
|
|
VERSION 1.0
|
||
|
|
LANGUAGES CXX)
|
||
|
|
|
||
|
|
file(GLOB_RECURSE SOURCES
|
||
|
|
source/ *.h
|
||
|
|
source/ *.cpp
|
||
|
|
)
|
||
|
|
|
||
|
|
add_compile_definitions(_EXPORTING)
|
||
|
|
|
||
|
|
add_library(HydraEngine SHARED ${SOURCES})
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
#********** GLFW **********
|
||
|
|
find_package(glfw3 3.5.0 REQUIRED)
|
||
|
|
include_directories(HydraEngine "C:/Program Files (x86)/GLFW/include")
|
||
|
|
target_link_libraries(HydraEngine PRIVATE glfw)
|
||
|
|
#********** Glew **********
|
||
|
|
find_package(GLEW REQUIRED)
|
||
|
|
include_directories(HydraEngine ${GLEW_INCLUDE_DIRS})
|
||
|
|
target_link_libraries(HydraEngine PRIVATE ${GLEW_LIBRARIES})
|
||
|
|
#********** GLM **********
|
||
|
|
find_package(glm CONFIG REQUIRED)
|
||
|
|
include_directories(HydraClient "${CMAKE_SOURCE_DIR}/Libraries/glm")
|
||
|
|
#********** AssImp **********
|
||
|
|
include_directories(HydraEngine, "../Libraries/assimp/include/")
|
||
|
|
target_link_libraries(HydraEngine PRIVATE "c:/Code/HydraV3/Libraries/assimp/lib/Debug/assimp-vc143-mtd.lib")
|
||
|
|
#********** OpenGL **********
|
||
|
|
find_package(OpenGL REQUIRED)
|
||
|
|
target_link_libraries(HydraEngine PRIVATE OpenGL32)
|
||
|
|
#********** STB Image ********
|
||
|
|
include_directories(HydraEngine, "../Libraries/stb-master/")
|
||
|
|
|
||
|
|
include_directories(HydraClient "${CMAKE_SOURCE_DIR}/HydraEngine/includes")
|
||
|
|
if(WIN32)
|
||
|
|
add_custom_command(TARGET HydraEngine POST_BUILD
|
||
|
|
COMMAND ${CMAKE_COMMAND} -E copy -t $<TARGET_FILE_DIR:HydraEngine> $<TARGET_RUNTIME_DLLS:HydraEngine>
|
||
|
|
COMMAND_EXPAND_LISTS
|
||
|
|
)
|
||
|
|
endif()
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
# set(GLSL_VALIDATOR "glslangValidator")
|
||
|
|
|
||
|
|
# file(GLOB_RECURSE GLSL_SOURCE_FILES
|
||
|
|
# "source/ShaderFiles/*.frag"
|
||
|
|
# "source/ShaderFiles/*.vert"
|
||
|
|
# "source/ShaderFiles/*.comp"
|
||
|
|
# "source/ShaderFiles/*.geom"
|
||
|
|
# )
|
||
|
|
|
||
|
|
# foreach(GLSL ${GLSL_SOURCE_FILES})
|
||
|
|
# get_filename_component(FILE_NAME ${GLSL} NAME)
|
||
|
|
|
||
|
|
# set(SPIRV "${PROJECT_BINARY_DIR}/shaders/${FILE_NAME}.spv")
|
||
|
|
# #set(COMMAND_STRING "${GLSL_VALIDATOR} -V ${GLSL} -o ${SPIRV}")
|
||
|
|
# set(COMMAND_STRING "${GLSL_VALIDATOR} -V ${GLSL} -o ${SPIRV}")
|
||
|
|
# add_custom_command(
|
||
|
|
# OUTPUT ${SPIRV}
|
||
|
|
# COMMAND ${CMAKE_COMMAND} -E make_directory "${PROJECT_BINARY_DIR}/shaders/"
|
||
|
|
# COMMAND ${GLSL_VALIDATOR} -V ${GLSL} -o ${SPIRV}
|
||
|
|
# DEPENDS ${GLSL})
|
||
|
|
# list(APPEND SPIRV_BINARY_FILES ${SPIRV})
|
||
|
|
# endforeach(GLSL)
|
||
|
|
|
||
|
|
# add_custom_target(
|
||
|
|
# Shaders
|
||
|
|
# DEPENDS ${SPIRV_BINARY_FILES}
|
||
|
|
# )
|
||
|
|
|
||
|
|
# add_dependencies(HydraEngine Shaders)
|
||
|
|
|
||
|
|
# add_custom_command(TARGET HydraEngine POST_BUILD
|
||
|
|
# COMMAND ${CMAKE_COMMAND} -E make_directory "$<TARGET_FILE_DIR:HydraEngine>/shaders/"
|
||
|
|
# COMMAND ${CMAKE_COMMAND} -E copy_directory
|
||
|
|
# "${PROJECT_BINARY_DIR}/shaders"
|
||
|
|
# "$<TARGET_FILE_DIR:HydraEngine>/shaders"
|
||
|
|
# )
|