include(ExternalProject)

message(STATUS "Building CGAL")

message(STATUS "Current source dir: ${CMAKE_CURRENT_SOURCE_DIR}")
message(STATUS "Binary dir: ${CMAKE_BINARY_DIR}")

set(CGAL_INSTALL_DIR ${CMAKE_BINARY_DIR}/CGAL-4.6-installdir)

if ( CMAKE_BUILD_TYPE )
  set(CGAL_BUILD_TYPE ${CMAKE_BUILD_TYPE})
else()
  set(CGAL_BUILD_TYPE Debug)
endif()

# CGAL doesn't allow Developer as build type.
if ( "${CMAKE_BUILD_TYPE}" STREQUAL "Developer" )
  set(CGAL_BUILD_TYPE "Debug")
endif()

message(STATUS "CGAL build type: ${CGAL_BUILD_TYPE}")

# Note: Need to add fPIC in order to be able to link staticly with CGAL
ExternalProject_Add(CGAL-4.6
  SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/CGAL-4.6
  INSTALL_DIR ${CGAL_INSTALL_DIR}
  CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=${CGAL_INSTALL_DIR} -DCMAKE_BUILD_TYPE=${CGAL_BUILD_TYPE} -DCGAL_CXX_FLAGS=-fPIC -DWITH_CGAL_Core:BOOL=OFF -DWITH_CGAL_ImageIO:BOOL=OFF -DWITH_CGAL_Qt3:BOOL=OFF -DWITH_CGAL_Qt4:BOOL=OFF -DWITH_demos:BOOL=OFF -DWITH_examples:BOOL=OFF -DWITH_LEDA:BOOL=OFF -DWITH_GMP:BOOL=ON -DWITH_MPFR:BOOL=ON -DBUILD_SHARED_LIBS:BOOL=OFF -DBOOST_ROOT=${BOOST_ROOT} -DGMP_INCLUDE_DIR=${GMP_INCLUDE_DIR} -DGMP_LIBRARIES=${GMP_LIBRARIES} -DMPFR_INCLUDE_DIR=${MPFR_INCLUDE_DIR} -DMPFR_LIBRARIES=${MPFR_LIBRARIES}

    # -DWITH_ESBTL:BOOL=OFF        \
    # -DWITH_Eigen3:BOOL=OFF       \
    # -DWITH_GMPXX:BOOL=OFF        \
    # -DWITH_IPE:BOOL=OFF          \
    # -DWITH_LAPACK:BOOL=OFF       \
    # -DWITH_LEDA:BOOL=OFF         \
    # -DWITH_MPFI:BOOL=OFF         \
    # -DWITH_NTL:BOOL=OFF          \
    # -DWITH_OpenGL:BOOL=OFF       \
    # -DWITH_OpenNL:BOOL=OFF       \
    # -DWITH_QGLViewer:BOOL=OFF    \
    # -DWITH_RS:BOOL=OFF           \
    # -DWITH_RS3:BOOL=OFF          \
    # -DWITH_TAUCS:BOOL=OFF        \
    # -DWITH_ZLIB:BOOL=OFF         \

  UPDATE_COMMAND ""
) 

set(CGAL_INCLUDE_DIR ${CGAL_INSTALL_DIR}/include PARENT_SCOPE)
set(CGAL_LIB_DIR ${CGAL_INSTALL_DIR}/lib PARENT_SCOPE)

# LINK_DIRECTORIES( ${CGAL_INSTALL_DIR}/lib )

# ADD_LIBRARY(CGAL STATIC IMPORTED)
# SET_TARGET_PROPERTIES(TARGET cgal PROPERTY
#     IMPORTED_LOCATION ${CGAL_INSTALL_DIR}/lib/libCGAL.a)

# ADD_LIBRARY(CGAL_Core STATIC IMPORTED)
# SET_TARGET_PROPERTIES(TARGET cgal PROPERTY
#     IMPORTED_LOCATION ${CGAL_INSTALL_DIR}/lib/libCGAL_Core.a)

add_subdirectory( tetgen1.5.0 )

set(EXTERNAL_INCLUDE_DIRS "${CGAL_INSTALL_DIR}/include;${TETGEN_INCLUDE_DIR}" PARENT_SCOPE)
set(EXTERNAL_LIBS "${CGAL_INSTALL_DIR}/lib/libCGAL.a;tet" PARENT_SCOPE)
set(EXTERNAL_DEFINITIONS "${TETGEN_DEFINITIONS}" PARENT_SCOPE)
