94 lines
2.5 KiB
Plaintext
94 lines
2.5 KiB
Plaintext
# http://stackoverflow.com/a/18234926/148668
|
|
# -stdlib=libc++ breaks gcc (for clang, the correct stdlib will be used with
|
|
# -std=c++11 anyway)
|
|
macro(remove_cxx_flag flag)
|
|
string(REPLACE "${flag}" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
|
|
endmacro()
|
|
remove_cxx_flag("-stdlib=libc++")
|
|
if(NOT CMAKELISTS_SHARED_INCLUDED)
|
|
set(CMAKELISTS_SHARED_INCLUDED TRUE)
|
|
|
|
if(MSVC)
|
|
### Enable parallel compilation for Visual Studio
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP")
|
|
else(MSVC)
|
|
#### Libigl requires a modern C++ compiler that supports c++11
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
|
|
endif(MSVC)
|
|
|
|
find_package(OpenMP)
|
|
if (OPENMP_FOUND AND NOT WIN32)
|
|
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
|
|
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
|
|
endif()
|
|
|
|
set(CMAKE_VERBOSE_MAKEFILE ON)
|
|
|
|
set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/../cmake ${PROJECT_SOURCE_DIR}/cmake)
|
|
set(CMAKE_COLOR_MAKEFILE ON)
|
|
|
|
############################
|
|
## SEPARATE BUILD OPTIONS ##
|
|
############################
|
|
|
|
find_package(OpenGL REQUIRED)
|
|
find_package(EIGEN REQUIRED)
|
|
find_package(GLFWH REQUIRED)
|
|
|
|
if(NOT APPLE)
|
|
find_package(GLEW REQUIRED)
|
|
endif(NOT APPLE)
|
|
|
|
if(APPLE)
|
|
set(CMAKE_CXX_LINK_FLAGS "-framework OpenGL -framework Cocoa -framework IOKit -framework CoreVideo")
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native")
|
|
endif (APPLE)
|
|
|
|
if(UNIX AND NOT APPLE)
|
|
set(CMAKE_CXX_LINK_EXECUTABLE "${CMAKE_CXX_LINK_EXECUTABLE} -lGL -lGLU -lrt -lX11 -lXxf86vm -lXrandr -lpthread -lXi -lXcursor -lXinerama ")
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native")
|
|
endif(UNIX AND NOT APPLE)
|
|
|
|
if(NOT APPLE)
|
|
include_directories( ${GLEW_INCLUDE_DIR} )
|
|
endif(NOT APPLE)
|
|
|
|
include_directories( ${EIGEN_INCLUDE_DIR})
|
|
include_directories( ${GLFW_INCLUDE_DIR})
|
|
include_directories(
|
|
/usr/local/include
|
|
/opt/local/include
|
|
${PROJECT_SOURCE_DIR}
|
|
${OPENGL_INCLUDE_DIR}
|
|
)
|
|
|
|
link_directories(
|
|
/usr/local/lib
|
|
${EIGEN_DIRS}
|
|
)
|
|
|
|
# Disable deprecated opengl code from libigl
|
|
add_definitions(-DIGL_OPENGL_4)
|
|
|
|
IF(CMAKE_BUILD_TYPE MATCHES RELEASE)
|
|
add_definitions(-DNDEBUG)
|
|
ENDIF(CMAKE_BUILD_TYPE MATCHES RELEASE)
|
|
|
|
if (${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang" OR ${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU")
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-deprecated-register")
|
|
endif()
|
|
|
|
|
|
if(NOT APPLE)
|
|
set(SHARED_SOURCES ${SHARED_SOURCES} ${GLEW_SOURCES})
|
|
endif(NOT APPLE)
|
|
|
|
set(SHARED_LIBRARIES
|
|
${OPENGL_LIBRARIES}
|
|
${EIGEN_LIBRARIES}
|
|
${GLEW_LIBRARIES}
|
|
)
|
|
|
|
endif(NOT CMAKELISTS_SHARED_INCLUDED)
|