cmake_minimum_required(VERSION 3.19) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) project(Main) file(GLOB SOURCES src/*.h src/*.cpp src/*.c) add_executable(Main ${SOURCES}) target_include_directories(Main PUBLIC include src) # # Add ImGui sources # file(GLOB IMGUI_SOURCES # ${CMAKE_CURRENT_LIST_DIR}/include/imgui/*.cpp # ) # file(GLOB TINY_GLTF_SOURCES ${CMAKE_CURRENT_LIST_DIR}/include/tiny_gltf/*.cc) # target_sources(Main PRIVATE ${IMGUI_SOURCES}) # target_sources(Main PRIVATE ${TINY_GLTF_SOURCES}) find_package(glfw3 3.4 REQUIRED) set(OpenGL_GL_PREFERENCE GLVND) find_package(OpenGL REQUIRED) find_package(glm REQUIRED) # # copy shader files # file(GLOB GLSL_SOURCE_FILES # shaders/*.frag # shaders/*.vert # ) # add_custom_target(Shaders DEPENDS ${GLSL_SOURCE_FILES}) # add_dependencies(Main Shaders) # add_custom_command(TARGET Shaders POST_BUILD # COMMAND ${CMAKE_COMMAND} -E copy_directory # "$/shaders" # "$/$/shaders" # ) # # copy assets # file(GLOB ASSET_FILES assets/*) # add_custom_target( # Assets # DEPENDS ${ASSET_FILES} # ) # add_dependencies(Main Assets) # add_custom_command(TARGET Assets POST_BUILD # COMMAND ${CMAKE_COMMAND} -E copy_directory # "$/assets" # "$/$/assets" # ) if(UNIX) set(GLFW3_LIBRARY glfw) endif() include_directories(${GLFW3_INCLUDE_DIR} ${GLM_INCLUDE_DIR}) target_link_libraries(Main ${GLFW3_LIBRARY} OpenGL::GL)