Skip to content
Snippets Groups Projects
CMakeLists.txt 1.77 KiB
Newer Older
  • Learn to ignore specific revisions
  • Daniel Sieger's avatar
    Daniel Sieger committed
    project(pmp-template)
    
    cmake_minimum_required(VERSION 3.0.2)
    
    # set output paths
    set(PROJECT_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR})
    set(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR})
    set(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR})
    set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR})
    
    
    # compile PMP library
    set(PMP_BUILD_APPS     OFF CACHE BOOL "")
    set(PMP_BUILD_EXAMPLES OFF CACHE BOOL "")
    set(PMP_BUILD_TESTS    OFF CACHE BOOL "")
    set(PMP_BUILD_DOCS     OFF CACHE BOOL "")
    
    Daniel Sieger's avatar
    Daniel Sieger committed
    add_subdirectory(external/pmp-library)
    
    
    # add include directories
    
    Daniel Sieger's avatar
    Daniel Sieger committed
    include_directories(${PROJECT_SOURCE_DIR}/external/pmp-library/src)
    
    include_directories(${PROJECT_SOURCE_DIR}/external/pmp-library/external/imgui)
    include_directories(${PROJECT_SOURCE_DIR}/external/pmp-library/external/eigen)
    
    Daniel Sieger's avatar
    Daniel Sieger committed
    include_directories(${PROJECT_SOURCE_DIR}/external/pmp-library/external/glfw/include)
    include_directories(${PROJECT_SOURCE_DIR}/external/pmp-library/external/glew/include)
    
    # set default compiler flags
    if((UNIX OR APPLE) AND CMAKE_COMPILER_IS_GNUCXX)
      set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -pedantic -Wall -Wextra")
    endif()
    
    if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" AND NOT EMSCRIPTEN)
        set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -pedantic -Wall -Wextra -Wno-unused-parameter")
    endif()
    
    if(WIN32)
      set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_USE_MATH_DEFINES -DNOMINMAX -D_CRT_SECURE_NO_WARNINGS")
    endif()
    
    
    if (EMSCRIPTEN)
        set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -s ALLOW_MEMORY_GROWTH=1 -s USE_GLFW=3")
        set(CMAKE_EXECUTABLE_SUFFIX ".html")
    endif()
    
    
    Daniel Sieger's avatar
    Daniel Sieger committed
    # make a release build by default
    if(NOT CMAKE_BUILD_TYPE)
      set(CMAKE_BUILD_TYPE "Release")
    endif()
    
    
    if(${CMAKE_BUILD_TYPE} STREQUAL "Debug")
      set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ggdb")
    endif()
    
    
    # which directories to process
    add_subdirectory(src/)