165 lines
4.3 KiB
CMake
165 lines
4.3 KiB
CMake
cmake_minimum_required(VERSION 2.8)
|
|
project(RopeSim)
|
|
|
|
#-------------------------------------------------------------------------------
|
|
# Build options
|
|
#-------------------------------------------------------------------------------
|
|
option(BUILD_LIBCGL "Build with libCGL" ON)
|
|
|
|
#-------------------------------------------------------------------------------
|
|
# Platform-specific settings
|
|
#-------------------------------------------------------------------------------
|
|
|
|
###################
|
|
# Building on OSX #
|
|
###################
|
|
if(APPLE)
|
|
|
|
# OSX Framework dependencies
|
|
if(NOT BUILD_LIBCGL)
|
|
include_directories( "/System/Library/Frameworks" )
|
|
find_library (COCOA_LIBRARIES Cocoa)
|
|
find_library (IOKIT_LIBRARIES IOkit)
|
|
find_library (COREVIDEO_LIBRARIES CoreVideo)
|
|
endif()
|
|
|
|
# Clang configuration
|
|
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
|
|
|
set(CLANG_CXX_FLAGS "-std=c++11 -m64")
|
|
|
|
if(BUILD_DEBUG)
|
|
set(CMAKE_BUILD_TYPE Debug)
|
|
set(CLANG_CXX_FLAGS "${CLANG_CXX_FLAGS} -g")
|
|
else(BUILD_DEBUG)
|
|
set(CLANG_CXX_FLAGS "${CLANG_CXX_FLAGS} -O3")
|
|
set(CLANG_CXX_FLAGS "${CLANG_CXX_FLAGS} -funroll-loops")
|
|
set(CLANG_CXX_FLAGS "${CLANG_CXX_FLAGS} -Wno-narrowing")
|
|
set(CLANG_CXX_FLAGS "${CLANG_CXX_FLAGS} -Wno-deprecated-register")
|
|
endif(BUILD_DEBUG)
|
|
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CLANG_CXX_FLAGS}")
|
|
|
|
endif()
|
|
|
|
# GCC configuration
|
|
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
|
|
|
|
set(GCC_CXX_FLAGS "-std=gnu++11 -m64")
|
|
|
|
if(BUILD_DEBUG)
|
|
set(CMAKE_BUILD_TYPE Debug)
|
|
set(GCC_CXX_FLAGS "${GCC_CXX_FLAGS} -g")
|
|
else(BUILD_DEBUG)
|
|
set(GCC_CXX_FLAGS "${GCC_CXX_FLAGS} -O3")
|
|
set(GCC_CXX_FLAGS "${GCC_CXX_FLAGS} -fopenmp")
|
|
endif(BUILD_DEBUG)
|
|
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${GCC_CXX_FLAGS}")
|
|
|
|
endif()
|
|
|
|
endif(APPLE)
|
|
|
|
##################
|
|
# Build on Linux #
|
|
##################
|
|
set(LINUX UNIX AND NOT APPLE)
|
|
if(LINUX)
|
|
|
|
# GCC only
|
|
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
|
|
|
|
set(GCC_CXX_FLAGS "-std=gnu++11 -m64")
|
|
|
|
# X11 Dependencies
|
|
if(NOT BUILD_LIBCGL)
|
|
set(GCC_CXX_FLAGS "${GCC_CXX_FLAGS} -lXi")
|
|
set(GCC_CXX_FLAGS "${GCC_CXX_FLAGS} -lXxf86vm")
|
|
set(GCC_CXX_FLAGS "${GCC_CXX_FLAGS} -lXinerama")
|
|
set(GCC_CXX_FLAGS "${GCC_CXX_FLAGS} -lXcursor")
|
|
set(GCC_CXX_FLAGS "${GCC_CXX_FLAGS} -lXfixes")
|
|
set(GCC_CXX_FLAGS "${GCC_CXX_FLAGS} -lXrandr")
|
|
set(GCC_CXX_FLAGS "${GCC_CXX_FLAGS} -lXext")
|
|
set(GCC_CXX_FLAGS "${GCC_CXX_FLAGS} -lXrender")
|
|
set(GCC_CXX_FLAGS "${GCC_CXX_FLAGS} -lX11")
|
|
set(GCC_CXX_FLAGS "${GCC_CXX_FLAGS} -lpthread")
|
|
set(GCC_CXX_FLAGS "${GCC_CXX_FLAGS} -lxcb")
|
|
set(GCC_CXX_FLAGS "${GCC_CXX_FLAGS} -lXau")
|
|
endif()
|
|
|
|
# Debug configuration
|
|
if(BUILD_DEBUG)
|
|
set(CMAKE_BUILD_TYPE Debug)
|
|
set(GCC_CXX_FLAGS "${GCC_CXX_FLAGS} -g")
|
|
else(BUILD_DEBUG)
|
|
set(GCC_CXX_FLAGS "${GCC_CXX_FLAGS} -O3")
|
|
set(GCC_CXX_FLAGS "${GCC_CXX_FLAGS} -fopenmp")
|
|
endif(BUILD_DEBUG)
|
|
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${GCC_CXX_FLAGS}")
|
|
|
|
endif()
|
|
|
|
endif(LINUX)
|
|
|
|
####################
|
|
# Build on Windows #
|
|
####################
|
|
if(WIN32)
|
|
|
|
if(MSVC)
|
|
|
|
set(MSVC_CXX_FLAGS "-std=gnu++11")
|
|
|
|
if(BUILD_DEBUG)
|
|
set(CMAKE_BUILD_TYPE Debug)
|
|
else(BUILD_DEBUG)
|
|
endif(BUILD_DEBUG)
|
|
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${MSVC_CXX_FLAGS}")
|
|
|
|
endif(MSVC)
|
|
|
|
if(MINGW)
|
|
|
|
set(MSVC_CXX_FLAGS "-std=gnu++11")
|
|
|
|
if(BUILD_DEBUG)
|
|
set(CMAKE_BUILD_TYPE Debug)
|
|
else(BUILD_DEBUG)
|
|
endif(BUILD_DEBUG)
|
|
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${MSVC_CXX_FLAGS}")
|
|
|
|
endif(MINGW)
|
|
|
|
endif(WIN32)
|
|
|
|
#-------------------------------------------------------------------------------
|
|
# Find dependencies
|
|
#-------------------------------------------------------------------------------
|
|
|
|
# Required packages
|
|
find_package(OpenGL REQUIRED)
|
|
find_package(Threads REQUIRED)
|
|
find_package(Freetype REQUIRED)
|
|
|
|
# CGL
|
|
if(BUILD_LIBCGL)
|
|
add_subdirectory(CGL)
|
|
include_directories(CGL/include)
|
|
else(BUILD_LIBCGL)
|
|
find_package(CGL REQUIRED)
|
|
find_package(GLEW REQUIRED)
|
|
find_package(GLFW REQUIRED)
|
|
endif(BUILD_LIBCGL)
|
|
|
|
#-------------------------------------------------------------------------------
|
|
# Add subdirectories
|
|
#-------------------------------------------------------------------------------
|
|
add_subdirectory(src)
|
|
|
|
# Install settings
|
|
set(CMAKE_INSTALL_PREFIX "${RopeSim_SOURCE_DIR}/")
|