0% found this document useful (0 votes)
10 views3 pages

C Make Lists

The document is a CMake configuration file for the RopeSim project, specifying minimum requirements and build options for different platforms including OSX, Linux, and Windows. It includes settings for compiler flags, library dependencies, and debug configurations. Additionally, it sets up installation settings and includes subdirectories for source code and optional libraries.

Uploaded by

shaobingchen0012
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
10 views3 pages

C Make Lists

The document is a CMake configuration file for the RopeSim project, specifying minimum requirements and build options for different platforms including OSX, Linux, and Windows. It includes settings for compiler flags, library dependencies, and debug configurations. Additionally, it sets up installation settings and includes subdirectories for source code and optional libraries.

Uploaded by

shaobingchen0012
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 3

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}/")

You might also like