CMAKE_MINIMUM_REQUIRED(VERSION 2.8)

PROJECT(${GINKGO_PROJECT})

SET(SRCS main.cpp)

ADD_GINKGO_DEFINITIONS()

INCLUDE_DIRECTORIES(${CADxCore_INCLUDE_DIR})

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_EXECUTABLE(${PROJECT_NAME} WIN32 MACOSX_BUNDLE ${SRCS})
TARGET_LINK_LIBRARIES(${PROJECT_NAME} CADxCore)
SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES
	LINK_INTERFACE_LIBRARIES ""
	CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/share/ginkgocadx/bin")

INSTALL(TARGETS ${PROJECT_NAME} DESTINATION share/ginkgocadx/bin)

IF(USE_CUSTOM_WX)
        ADD_DEFINITIONS(${wxWidgets_defines})
        INCLUDE_DIRECTORIES(${wxWidgets_INCLUDE_DIR})
        LINK_DIRECTORIES(${wxWidgets_DIR})
ELSE()
        INCLUDE(${wxWidgets_USE_FILE})
	#MESSAGE("SYSTEM_WX: VL = ${VTK_DIR}")
        LINK_DIRECTORIES(${wxWidgets_DIR})
ENDIF()

IF (USE_CUSTOM_VTK)
	LINK_DIRECTORIES(${VTK_DIR})
ELSE()
	#MESSAGE("SYSTEM_VTK: VL = ${VTK_DIR}")
	LINK_DIRECTORIES(${VTK_LIBRARY_DIRS})
ENDIF()

IF(USE_CUSTOM_ITK)
	LINK_DIRECTORIES(${ITK_DIR})
ELSE()
	#MESSAGE("SYSTEM_ITK: IL = ${ITK_DIR}")
	LINK_DIRECTORIES(${ITK_DIR})
ENDIF()

IF(USE_CUSTOM_ITK)
	
ELSE()
	#MESSAGE("SYSTEM_DCMTK: DL = ${DCMTK_DIR}")
	LINK_DIRECTORIES(${DCMTK_LIBRARY_PATH})
ENDIF()

LINK_DIRECTORIES(${Cairo_DIR})
LINK_DIRECTORIES(${Pixman_DIR})
LINK_DIRECTORIES(${XmlRpc++_DIR})

IF(MACOS)
	SET(SRCS ${SRCS}
		${CMAKE_CURRENT_SOURCE_DIR}/ginkgo.icns
		${CMAKE_CURRENT_SOURCE_DIR}/dcmdoc.icns
	)
	SET_SOURCE_FILES_PROPERTIES(${CMAKE_CURRENT_SOURCE_DIR}/ginkgo.icns PROPERTIES MACOSX_PACKAGE_LOCATION Resources)
	SET_SOURCE_FILES_PROPERTIES(${CMAKE_CURRENT_SOURCE_DIR}/dcmdoc.icns PROPERTIES MACOSX_PACKAGE_LOCATION Resources)
	SET_SOURCE_FILES_PROPERTIES(${CMAKE_CURRENT_SOURCE_DIR}/PkgInfo PROPERTIES MACOSX_PACKAGE_LOCATION .)

	SET(APPBUNDLE ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.app)
	SET(MACOSX_BUNDLE_GUI_IDENTIFIER "com.metaemotion.Ginkgo_CADx")
	SET(MACOSX_BUNDLE_BUNDLE_NAME ${PROJECT_NAME})
	SET(MACOSX_BUNDLE_VERSION ${GINKGO_VERSION})
	
	CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/Ginkgo-Info.plist.in ${CMAKE_CURRENT_BINARY_DIR}/Info.plist)
	
	SET(LIBS)

	MESSAGE("PLUGINS = ${GINKGO_PLUGINS}")
	FOREACH(PLUGIN ${GINKGO_PLUGINS})
		LIST(APPEND LIBS ${CMAKE_CURRENT_BINARY_DIR}/../${PLUGIN}/lib${PLUGIN}.dylib)
	ENDFOREACH()

	install(CODE 
	        " 
	        include(BundleUtilities) 
	        fixup_bundle(\"${APPBUNDLE}\" \"${LIBS}\" \"${DIRS}\") 
	        " 
	        COMPONENT Runtime 
	    )
		
	SET_TARGET_PROPERTIES(
		"${PROJECT_NAME}"
		PROPERTIES
			MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_BINARY_DIR}/Info.plist
		    LINK_FLAGS "-Wl ${XCODE_LINK_FLAGS}"
	)
ENDIF()

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