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 $ $ 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 "$/shaders/" # COMMAND ${CMAKE_COMMAND} -E copy_directory # "${PROJECT_BINARY_DIR}/shaders" # "$/shaders" # )