CMAKE_MINIMUM_REQUIRED(VERSION 2.8)

PROJECT(fooextension)

################ SOURCES ################

SET(SRCS fooextension.cpp)
AUX_SOURCE_DIRECTORY(fooextension/commands SRCS)
AUX_SOURCE_DIRECTORY(fooextension/controllers SRCS)
AUX_SOURCE_DIRECTORY(fooextension/gui SRCS)
AUX_SOURCE_DIRECTORY(fooextension/gui/importation SRCS)
AUX_SOURCE_DIRECTORY(fooextension/studies SRCS)
AUX_SOURCE_DIRECTORY(fooextension/views SRCS)
AUX_SOURCE_DIRECTORY(fooextension/wxvtk SRCS)

################ DEFINITIONS ################

ADD_EXTENSION_DEFINITIONS()

################ INCLUDE DIRECTORIES ################

SET(${PROJECT_NAME}_INCLUDE_DIR
	${CMAKE_CURRENT_SOURCE_DIR}
	CACHE INTERNAL ""
)

INCLUDE_DIRECTORIES(${CADxCore_INCLUDE_DIR})

INCLUDE_DIRECTORIES(${${PROJECT_NAME}_INCLUDE_DIR})

IF(USE_CUSTOM_WX)
   ADD_DEFINITIONS(${wxWidgets_defines})
   INCLUDE_DIRECTORIES(${wxWidgets_INCLUDE_DIR})
   LINK_DIRECTORIES(${wxWidgets_DIR})
ELSE()
   INCLUDE(${wxWidgets_USE_FILE})
   #MESSAGE("WXLIBS = ${wxWidgets_LIBRARIES} ")
ENDIF()


IF (USE_CUSTOM_VTK)
   ADD_DEFINITIONS(${VTK_defines})
   INCLUDE_DIRECTORIES(${VTK_INCLUDE_DIR})
   LINK_DIRECTORIES(${VTK_DIR})
ELSE()
   INCLUDE(${VTK_USE_FILE})
   SET(VTK_LIBRARIES vtkCommon vtkGraphics vtkFiltering vtkHybrid vtkIO vtkRendering vtkImaging
   vtkGenericFiltering vtkWidgets vtkftgl vtkVolumeRendering vtkexoIIc vtkDICOMParser CACHE INTERNAL "")
   #MESSAGE("VTKLIBS = ${VTK_LIBRARIES}")
ENDIF()

IF(USE_CUSTOM_ITK)
   ADD_DEFINITIONS(${ITK_defines})
   INCLUDE_DIRECTORIES(${ITK_INCLUDE_DIR})
   LINK_DIRECTORIES(${ITK_DIR})
ELSE()
   INCLUDE(${ITK_USE_FILE})
   #MESSAGE("ITKLIBS = ${ITK_LIBRARIES}")
ENDIF()

ADD_DEFINITIONS(${Cairo_defines})
INCLUDE_DIRECTORIES(${Cairo_INCLUDE_DIR})
LINK_DIRECTORIES(${Cairo_LIB})

ADD_DEFINITIONS(${Pixman_defines})
INCLUDE_DIRECTORIES(${Pixman_INCLUDE_DIR})
LINK_DIRECTORIES(${Pixman_LIB})

################ TARGET ################

IF(LINUX AND NOT CUSTOM_PACKAGE)
   SET(CMAKE_SKIP_BUILD_RPATH  FALSE)
   SET(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE)
   SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib/ginkgocadx")
   SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
   LIST(FIND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES "${CMAKE_INSTALL_PREFIX}/lib/ginkgocadx" isSystemDir)
   IF("${isSystemDir}" STREQUAL "-1")
      SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib/ginkgocadx")
   ENDIF()
ENDIF()

ADD_LIBRARY(${PROJECT_NAME} SHARED ${SRCS} )
#ADD_EXECUTABLE(${PROJECT_NAME} WIN32 MACOSX_BUNDLE ${SRCS})
SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES
   VERSION "${GINKGO_VERSION_STR}" SOVERSION "${GINKGO_VERSION_STR}"
   LINK_INTERFACE_LIBRARIES ""
   INSTALL_RPATH_USE_LINK_PATH TRUE )
INSTALL(TARGETS ${PROJECT_NAME} LIBRARY DESTINATION lib/ginkgocadx/Plugins)

################ LIBS ################

TARGET_LINK_LIBRARIES(${PROJECT_NAME} CADxCore)


TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${wxWidgets_LIBRARIES})
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${VTK_LIBRARIES})
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${ITK_LIBRARIES})
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${Cairo_LIBRARIES})
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${Pixman_LIBRARIES})

IF (LINUX)
   TARGET_LINK_LIBRARIES(${PROJECT_NAME} GL xml2)
ENDIF()

IF(MACOS)
   FIND_LIBRARY( CARBON_LIB Carbon )
   FIND_LIBRARY( OPENGL_LIB OpenGL )

   MARK_AS_ADVANCED( CARBON_LIB OPENGL_LIB )

   SET(LIBS ${CARBON_LIB} ${OPENGL_LIB} )
   LIST( APPEND LIBS xml2 z )

   TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${LIBS})

   SET_TARGET_PROPERTIES( PROPERTIES LINK_FLAGS "-Wl ${XCODE_LINK_FLAGS}" )

ENDIF()

MESSAGE("OS=[${OS}], Arch=[${ARCH}], Target=[${CMAKE_BUILD_TYPE}], Project=[${PROJECT_NAME}]")
