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

################ 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}/share/ginkgocadx/bin")
	SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
	LIST(FIND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES "${CMAKE_INSTALL_PREFIX}/share/ginkgocadx/bin" isSystemDir)
	IF("${isSystemDir}" STREQUAL "-1")
		SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/share/ginkgocadx/bin")
	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}" SOVERSION "${GINKGO_VERSION}"
	LINK_INTERFACE_LIBRARIES ""
	INSTALL_RPATH_USE_LINK_PATH TRUE )
INSTALL(TARGETS ${PROJECT_NAME} LIBRARY DESTINATION share/ginkgocadx/bin/Plugins)

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

TARGET_LINK_LIBRARIES(${PROJECT_NAME} CADxCore)

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()

TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${wxWidgets_LIBRARIES})

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()

TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${VTK_LIBRARIES})

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()

TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${ITK_LIBRARIES})

ADD_DEFINITIONS(${Cairo_defines})
INCLUDE_DIRECTORIES(${Cairo_INCLUDE_DIR})
LINK_DIRECTORIES(${Cairo_LIB})
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${Cairo_LIBRARIES})

ADD_DEFINITIONS(${Pixman_defines})
INCLUDE_DIRECTORIES(${Pixman_INCLUDE_DIR})
LINK_DIRECTORIES(${Pixman_LIB})
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}]")

