cmake_minimum_required(VERSION 3.25.1) set(CMAKE_CXX_STANDARD 23) set(PROJECT_EXECUTABLE_NAME open_engine) project(OpenEngine VERSION 0.0.1 ) add_definitions( -DOE_ENABLE_ASSERTS ) find_package(imgui REQUIRED) find_package(EnTT REQUIRED) find_package(yaml-cpp REQUIRED) find_package(Jolt REQUIRED) find_package(fastgltf REQUIRED) find_package(spdlog REQUIRED) find_package(glm REQUIRED) find_package(glfw3 REQUIRED) file(GLOB_RECURSE SRC_FILES "src/*.cpp") file(GLOB IMGUIZMO_SRC_FILES "${CMAKE_SOURCE_DIR}/vendor/ImGuizmo/*.cpp") add_library(${PROJECT_EXECUTABLE_NAME} STATIC ${SRC_FILES} "vendor/stb_image/stb_image.cpp" ${IMGUIZMO_SRC_FILES} ) target_precompile_headers(${PROJECT_EXECUTABLE_NAME} PRIVATE include/open_engine/pch.hpp ) target_include_directories(${PROJECT_EXECUTABLE_NAME} PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/include/open_engine" "${CMAKE_CURRENT_SOURCE_DIR}/vendor/stb_image" ) target_include_directories(${PROJECT_EXECUTABLE_NAME} PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/include" #"/home/erris/.conan2/p/b/imguic69fe98538919/p/include" "vendor/nativefiledialog-extended/src/include" "${CMAKE_SOURCE_DIR}/vendor/ImGuizmo" ) set(DOTNET_ROOT "/usr/share/dotnet") # Locate the hostfxr and nethost headers # Typically found in: host/fxr// and packs/Microsoft.NETCore.App.Host.//runtime/native/ file(GLOB DOTNET_NETHOST_PATH "${DOTNET_ROOT}/packs/Microsoft.NETCore.App.Host.*/" ) find_path(NETHOST_INCLUDE_DIR nethost.h PATHS "${DOTNET_NETHOST_PATH}" PATH_SUFFIXES "runtime/native" ) target_include_directories(${PROJECT_EXECUTABLE_NAME} PRIVATE ${NETHOST_INCLUDE_DIR}) target_link_libraries(${PROJECT_EXECUTABLE_NAME} PRIVATE "${DOTNET_ROOT}/packs/Microsoft.NETCore.App.Host.linux-x64/8.0.0/runtimes/linux-x64/native/libnethost.a") #set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address -fno-omit-frame-pointer") #set(CMAKE_LINKER_FLAGS "${CMAKE_LINKER_FLAGS} -fsanitize=address") target_link_libraries(${PROJECT_EXECUTABLE_NAME} PUBLIC imgui::imgui spdlog::spdlog glad glfw glm::glm dl EnTT::EnTT X11 yaml-cpp::yaml-cpp nfd shaderc_combined glslang glslang-default-resource-limits SPIRV SPIRV-Tools SPIRV-Tools-opt spirv-cross-core spirv-cross-glsl spirv-cross-reflect Jolt::Jolt fastgltf::fastgltf ) #target_link_directories(${PROJECT_EXECUTABLE_NAME} PRIVATE # ${PROJECT_SOURCE_DIR}/lib #) add_subdirectory(vendor/glad ./glad ) add_subdirectory("vendor/nativefiledialog-extended") target_compile_options(open_engine PRIVATE -msse4.1 -msse4.2 -mavx -mavx2)