Skip to content
Snippets Groups Projects
Select Git revision
  • 1df19198a28a4f08ea4adcf1301a735d4149f1a3
  • master default protected
2 results

TD5.md

Blame
  • Forked from NAVES Guyslain / ProgAvExercices
    Source project has a limited visibility.
    Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    CMakelists.txt 2.40 KiB
    cmake_minimum_required(VERSION 3.1)
    
    #==============================================================
    #                           Configuration
    #==============================================================
    
    set(PROJECT_NAME "Main")
    set(EXECUTABLE_NAME "Main")
    
    set(CXX_STANDARD 20)
    set(CMAKE_CXX_STANDARD ${CXX_STANDARD})
    
    if (MSVC)
    	add_compile_options(/EHsc)
    endif()
    
    set(CMAKE_CXX_STANDARD_REQUIRED ON)
    set(CMAKE_CXX_EXTENSIONS OFF)
    
    #=====================================
    #				Options
    #=====================================
    
    if(WIN32)
    	option(CMAKE_TOOLCHAIN_FILE "C:/vcpkg/vcpkg/scripts/buildsystems/vcpkg.cmake")
    elseif(UNIX)
    	option(CMAKE_TOOLCHAIN_FILE "/amuhome/b20017738/Bureau/vcpkg/scripts/buildsystems/vcpkg.cmake")	
    endif()
    
    #==============================================================
    #                           Sources
    #==============================================================
    
    set(SOURCES ${CMAKE_SOURCE_DIR}/source/)
    set(LIBRARY ${CMAKE_SOURCE_DIR}/library/)
    set(INCLUDE ${CMAKE_SOURCE_DIR}/include/)
    
    set(VCPKG_INCLUDE ${CMAKE_SOURCE_DIR}/vcpkg_installed/*/include)
    set(VCPKG_LIB 	 ${CMAKE_SOURCE_DIR}/vcpkg_installed/*/lib)
    
    #==============================================================
    #                           Build
    #==============================================================
    
    project(${PROJECT_NAME})
    set(CURRENT_TARGET ${EXECUTABLE_NAME})
    
    add_executable(${CURRENT_TARGET})
    
    foreach(dir ${SOURCES})
        add_subdirectory(${dir})
    endforeach()  
    
    set_property(TARGET ${CURRENT_TARGET} PROPERTY RUNTIME_OUTPUT_DIRECTORY $<1:${CMAKE_SOURCE_DIR}>)
    
    #==============================================================
    #                           Linking
    #==============================================================
    
    target_include_directories(${CURRENT_TARGET} PRIVATE ${INCLUDE})
    
    list(APPEND CMAKE_PREFIX_PATH "/amuhome/b20017738/Bureau/vcpkg/packages/glew_x64-linux")
    list(APPEND CMAKE_PREFIX_PATH "/amuhome/b20017738/Bureau/vcpkg/packages/glm_x64-linux")
    list(APPEND CMAKE_PREFIX_PATH "/amuhome/b20017738/Bureau/vcpkg/packages/imgui_x64-linux")
    
    find_package(glfw3  REQUIRED)
    find_package(GLEW   REQUIRED)
    find_package(glm 	CONFIG REQUIRED)
    find_package(imgui 	REQUIRED)
    
    target_link_libraries(${CURRENT_TARGET} PRIVATE glfw)
    target_link_libraries(${CURRENT_TARGET} PRIVATE GLEW::GLEW)
    target_link_libraries(${CURRENT_TARGET} PRIVATE glm::glm-header-only)
    target_link_libraries(${CURRENT_TARGET} PRIVATE imgui::imgui)