diff --git a/CMakeLists.txt b/CMakeLists.txt index d8a46f7..5c2fda1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,53 +4,32 @@ project(TerraVisor) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) -# Define output directories for different configurations -set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}) - -if (WIN32) - set(VCPKG_ROOT "C:/users/jmchr/vcpkg") - set(FreeImage_INCLUDE_DIR ${VCPKG_ROOT}/packages/freeimage_x64-windows/include) - set(FreeImage_LIBRARIES ${VCPKG_ROOT}/packages/freeimage_x64-windows/lib/FreeImage.lib) -else() - set(VCPKG_ROOT "/vcpkg") - set(FreeImage_INCLUDE_DIR ${VCPKG_ROOT}/packages/freeimage_x64-linux/include) - set(FreeImage_LIBRARIES ${VCPKG_ROOT}/packages/freeimage_x64-linux/lib/libFreeImage.a) -endif() - -#include(C:/users/jmchr/vcpkg/scripts/buildsystems/vcpkg.cmake) - # Use the vcpkg toolchain file -if(DEFINED ENV{VCPKG_TOOLCHAIN}) - set(CMAKE_TOOLCHAIN_FILE $ENV{VCPKG_TOOLCHAIN}) -endif() +#set(CMAKE_TOOLCHAIN_FILE "C:/vcpkg/scripts/buildsystems/vcpkg.cmake" CACHE STRING "Vcpkg toolchain file") + +include(C:/vcpkg/scripts/buildsystems/vcpkg.cmake) # Find packages using vcpkg find_package(GLEW CONFIG REQUIRED) find_package(glfw3 CONFIG REQUIRED) find_package(glm CONFIG REQUIRED) find_package(assimp CONFIG REQUIRED) -find_package(FreeImage REQUIRED) +if (WIN32) + set(FreeImage_INCLUDE_DIR $ENV{VCPKG_ROOT}/packages/freeimage_x64-windows/include) + set(FreeImage_LIBRARIES $ENV{VCPKG_ROOT}/packages/freeimage_x64-windows/lib/FreeImage.lib) +elseif (UNIX) + set(FreeImage_INCLUDE_DIR $ENV{VCPKG_ROOT}/packages/freeimage_x64-linux/include) + set(FreeImage_LIBRARIES $ENV{VCPKG_ROOT}/packages/freeimage_x64-linux/lib/libFreeImage.a) +endif set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG "${CMAKE_BINARY_DIR}") set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE "${CMAKE_BINARY_DIR}") # Add source files -file(GLOB_RECURSE SOURCES - "${CMAKE_SOURCE_DIR}/source/*.cpp" -) - -# Add header files -file(GLOB_RECURSE HEADERS - "${CMAKE_SOURCE_DIR}/include/*.h" -) - -# Add shader files -file(GLOB SHADERS - "${CMAKE_SOURCE_DIR}/shaders/*.glsl" -) - -# Add ImGui source files +file(GLOB_RECURSE SOURCES "${CMAKE_SOURCE_DIR}/source/*.cpp") +file(GLOB_RECURSE HEADERS "${CMAKE_SOURCE_DIR}/include/*.h") +file(GLOB SHADERS "${CMAKE_SOURCE_DIR}/shaders/*.glsl") file(GLOB IMGUI_SOURCES "${CMAKE_SOURCE_DIR}/imgui/*.cpp" "${CMAKE_SOURCE_DIR}/imgui/backends/imgui_impl_glfw.cpp" @@ -59,11 +38,10 @@ file(GLOB IMGUI_SOURCES message(STATUS "Sources: ${SOURCES}") - # Add the executable add_executable(TerraVisor ${SOURCES} ${HEADERS} ${IMGUI_SOURCES}) -# Include directories +# Include directories (handled by find_package now) include_directories( ${CMAKE_SOURCE_DIR}/include ${CMAKE_SOURCE_DIR}/imgui @@ -71,23 +49,14 @@ include_directories( ${FreeImage_INCLUDE_DIR} ) -target_link_libraries(TerraVisor PRIVATE GLEW::GLEW glfw glm::glm assimp::assimp ${FreeImage_LIBRARIES}) - # Link libraries using vcpkg -# Link the FreeImage library explicitly -#if (WIN32) -# target_link_libraries(TerraVisor PRIVATE GLEW::GLEW glfw glm::glm assimp::assimp "${VCPKG_ROOT}/installed/x64-windows/lib/FreeImage.lib") -#else() -# target_link_libraries(TerraVisor PRIVATE GLEW::GLEW glfw glm::glm assimp::assimp "${VCPKG_ROOT}/installed/x64-linux/lib/libFreeImage.a") -#endif() +target_link_libraries(TerraVisor PRIVATE GLEW::GLEW glfw glm::glm assimp::assimp {FreeImage_LIBRARIES}) -# Custom target for shaders +# Custom targets add_custom_target(copy_shaders ALL COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_SOURCE_DIR}/shaders ${CMAKE_BINARY_DIR}/shaders ) - -# Custom target for hgt add_custom_target(copy_hgt ALL COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_SOURCE_DIR}/hgt ${CMAKE_BINARY_DIR}/hgt