CMakeLists.shared 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. # http://stackoverflow.com/a/18234926/148668
  2. # -stdlib=libc++ breaks gcc (for clang, the correct stdlib will be used with
  3. # -std=c++11 anyway)
  4. macro(remove_cxx_flag flag)
  5. string(REPLACE "${flag}" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
  6. endmacro()
  7. remove_cxx_flag("-stdlib=libc++")
  8. if(NOT CMAKELISTS_SHARED_INCLUDED)
  9. set(CMAKELISTS_SHARED_INCLUDED TRUE)
  10. IF(MSVC)
  11. ### Enable parallel compilation for Visual Studio
  12. SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP")
  13. ELSE(MSVC)
  14. #### Libigl requires a modern C++ compiler that supports c++11
  15. SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
  16. ENDIF(MSVC)
  17. find_package(OpenMP)
  18. if (OPENMP_FOUND AND NOT WIN32)
  19. set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
  20. set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
  21. endif()
  22. SET(CMAKE_VERBOSE_MAKEFILE ON)
  23. set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/../cmake ${PROJECT_SOURCE_DIR}/cmake)
  24. set(CMAKE_COLOR_MAKEFILE ON)
  25. ############################
  26. ## SEPARATE BUILD OPTIONS ##
  27. ############################
  28. find_package(OpenGL REQUIRED)
  29. find_package(EIGEN REQUIRED)
  30. find_package(GLFWH REQUIRED)
  31. #find_package(LIBIGL REQUIRED)
  32. #find_package(NANOGUI REQUIRED)
  33. if(NOT APPLE)
  34. find_package(GLEW REQUIRED)
  35. endif(NOT APPLE)
  36. if(APPLE)
  37. set(CMAKE_CXX_LINK_FLAGS "-framework OpenGL -framework Cocoa -framework IOKit -framework CoreVideo")
  38. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse4.2")
  39. endif (APPLE) #APPLE
  40. if(UNIX AND NOT APPLE)
  41. set(CMAKE_CXX_LINK_EXECUTABLE "${CMAKE_CXX_LINK_EXECUTABLE} -lGL -lGLU -lrt -lX11 -lXxf86vm -lXrandr -lpthread -lXi -lXcursor -lXinerama ")
  42. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mavx")
  43. endif(UNIX AND NOT APPLE)
  44. #include_directories( ${NANOGUI_INCLUDE_DIRS} )
  45. if(NOT APPLE)
  46. include_directories( ${GLEW_INCLUDE_DIR} )
  47. endif(NOT APPLE)
  48. include_directories( ${EIGEN_INCLUDE_DIR})
  49. #include_directories( ${LIBIGL_INCLUDE_DIRS})
  50. include_directories( ${GLFW_INCLUDE_DIR})
  51. include_directories(
  52. /usr/local/include
  53. /opt/local/include
  54. ${PROJECT_SOURCE_DIR}
  55. ${OPENGL_INCLUDE_DIR}
  56. )
  57. link_directories(
  58. /usr/local/lib
  59. /opt/local/lib
  60. ${EIGEN_DIRS}
  61. )
  62. #set(CMAKE_CXX_FLAGS -Wall -W -pedantic -std=c99)
  63. # Disable deprecated opengl code from libigl
  64. add_definitions(-DIGL_OPENGL_4)
  65. IF(CMAKE_BUILD_TYPE MATCHES RELEASE)
  66. add_definitions(-DNDEBUG)
  67. ENDIF(CMAKE_BUILD_TYPE MATCHES RELEASE)
  68. #add_definitions(-DENABLE_XML_SERIALIZATION)
  69. if (${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang" OR ${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU")
  70. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
  71. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-deprecated-register")
  72. endif()
  73. # set(SHARED_SOURCES ${LIBIGL_SOURCES})
  74. if(NOT APPLE)
  75. set(SHARED_SOURCES ${SHARED_SOURCES} ${GLEW_SOURCES})
  76. endif(NOT APPLE)
  77. # message(FATAL_ERROR ${LIBIGL_SOURCES})
  78. set(SHARED_LIBRARIES
  79. # ${LIBIGL_LIBRARIES}
  80. ${OPENGL_LIBRARIES}
  81. # ${NANOGUI_LIBRARY}
  82. ${EIGEN_LIBRARIES}
  83. ${GLEW_LIBRARIES}
  84. # ${GLFW_LIBRARIES}
  85. )
  86. #message(FATAL_ERROR ${SHARED_LIBRARIES})
  87. endif(NOT CMAKELISTS_SHARED_INCLUDED)