#add_subdirectory(Icons)

if(WIN32)
add_definitions(-DFCGui -DQIIS_MAKEDLL)
endif(WIN32)

include_directories(
		 ${CMAKE_CURRENT_SOURCE_DIR}
		 ${CMAKE_CURRENT_BINARY_DIR}
		 ${CMAKE_CURRENT_SOURCE_DIR}/..
		 ${CMAKE_CURRENT_BINARY_DIR}/..
		 ${CMAKE_CURRENT_BINARY_DIR}/Language
		 ${CMAKE_CURRENT_BINARY_DIR}/propertyeditor
		 ${CMAKE_CURRENT_BINARY_DIR}/TaskView
		 ${Boost_INCLUDE_DIRS}
		 ${COIN_INCLUDE_DIR}
		 ${PYTHON_INCLUDE_PATH}
		 ${SOQT_INCLUDE_DIR}
		 ${XERCESC_INCLUDE_DIR}
		 ${QT_INCLUDE_DIR}
		 ${ZLIB_INCLUDE_DIR})

if(WIN32)
		 set(FreeCADGui_LIBS
		 		 FreeCADApp
		 		 debug ${COIN3D_LIBRARY_DEBUG}
		 		 optimized ${COIN3D_LIBRARY_RELEASE}
		 		 debug ${SOQT_LIBRARY_DEBUG}
		 		 optimized ${SOQT_LIBRARY_RELEASE}
		 		 ${QT_DEBUG_LIBRARIES}
		 		 ${QT_LIBRARIES}
				 QtUiTools.lib
				 ${OPENGL_gl_LIBRARY})
else(WIN32)
		 set(FreeCADGui_LIBS
		 		 FreeCADBase
		 		 FreeCADApp
		 		 ${COIN3D_LIBRARY}
		 		 ${SOQT_LIBRARIES}
		 		 ${QT_LIBRARIES}
		 		 ${Boost_LIBRARIES}
				 ${OPENGL_gl_LIBRARY})
endif(WIN32)

generate_from_xml(DocumentPy)
generate_from_xml(PythonWorkbenchPy)
generate_from_xml(ViewProviderPy)
generate_from_xml(ViewProviderDocumentObjectPy)
generate_from_xml(ViewProviderPythonFeaturePy)
generate_from_xml(WorkbenchPy)
generate_from_xml(SelectionObjectPy) 

generate_from_py(FreeCADGuiInit GuiInitScript.h)

# The XML files
SET(FreeCADGui_XML_SRCS
		 ViewProviderDocumentObjectPy.xml
		 ViewProviderPythonFeaturePy.xml
		 ViewProviderPy.xml
		 PythonWorkbenchPy.xml
		 WorkbenchPy.xml
		 SelectionObjectPy.xml
		 DocumentPy.xml
)
SOURCE_GROUP("XML" FILES ${FreeCADApp_XML_SRCS})

set(Gui_MOC_HDRS
		 Action.h
		 CallTips.h
		 CombiView.h
		 Control.h
		 DemoMode.h
		 DlgActionsImp.h
		 DlgActivateWindowImp.h
		 DlgCommandsImp.h
		 DlgCustomizeImp.h
		 DlgDisplayPropertiesImp.h
		 DlgEditorImp.h
		 DlgGeneralImp.h
		 DlgInputDialogImp.h
		 DlgKeyboardImp.h
		 DlgMacroExecuteImp.h
		 DlgMacroRecordImp.h
		 DlgRunExternal.h
		 DlgEditFileIncludeProptertyExternal.h
		 DlgMaterialPropertiesImp.h
		 DlgOnlineHelpImp.h
		 DlgParameterImp.h
		 DlgPreferencesImp.h
		 DlgReportViewImp.h
		 DlgSettings3DViewImp.h
		 DlgSettingsViewColor.h
		 DlgSettingsColorGradientImp.h
		 DlgSettingsDocumentImp.h
		 DlgSettingsImageImp.h
		 DlgSettingsMacroImp.h
		 DlgSettingsUnitsImp.h
		 DlgTipOfTheDayImp.h
		 DlgToolbarsImp.h
		 DlgUndoRedo.h
		 DockWindow.h
		 DockWindowManager.h
		 EditorView.h
		 FileDialog.h
		 Flag.h
		 HelpView.h
		 InputVector.h
		 MainWindow.h
		 MDIView.h
		 NetworkRetriever.h
		 OnlineDocumentation.h
		 Placement.h
		 PrefWidgets.h
		 ProgressBar.h
		 PropertyPage.h
		 PropertyView.h
		 PythonConsole.h
		 PythonDebugger.h
		 PythonEditor.h
		 ReportView.h
		 SceneInspector.h
		 SelectionView.h
		 SpinBox.h
		 Splashscreen.h
		 TaskPanelView.h
		 TextEdit.h
		 ToolBox.h
		 Transform.h
		 Tree.h
		 TreeView.h
		 View3DInventor.h
		 WidgetFactory.h
		 Widgets.h
		 Language/Translator.h
		 propertyeditor/PropertyEditor.h
		 propertyeditor/PropertyItem.h
		 propertyeditor/PropertyItemDelegate.h
		 propertyeditor/PropertyModel.h
		 TaskView/TaskAppearance.h
		 TaskView/TaskDialog.h
		 TaskView/TaskWatcher.h
		 TaskView/TaskEditControl.h
		 TaskView/TaskView.h
)
#qt4_wrap_cpp(Gui_MOC_SRCS ${Gui_MOC_HDRS})
fc_wrap_cpp(Gui_MOC_SRCS ${Gui_MOC_HDRS})
#SOURCE_GROUP("Moc" FILES ${Gui_MOC_SRCS})

SET(Gui_UIC_SRCS
		 AboutApplication.ui
		 DemoMode.ui
		 DlgActions.ui
		 DlgActivateWindow.ui
		 DlgAuthorization.ui
		 DlgChooseIcon.ui
		 DlgCommands.ui
		 DlgDisplayProperties.ui
		 DlgEditor.ui
		 DlgGeneral.ui
		 DlgInputDialog.ui
		 DlgKeyboard.ui
		 DlgMacroExecute.ui
		 DlgRunExternal.ui
		 DlgMacroRecord.ui
		 DlgMaterialProperties.ui
		 DlgOnlineHelp.ui
		 DlgParameter.ui
		 DlgPreferences.ui
		 DlgProjectInformation.ui
		 DlgReportView.ui
		 DlgSettings3DView.ui
		 DlgSettingsUnits.ui
		 DlgSettingsViewColor.ui
		 DlgSettingsColorGradient.ui
		 DlgSettingsDocument.ui
		 DlgSettingsImage.ui
		 DlgSettingsMacro.ui
		 DlgTipOfTheDay.ui
		 DlgToolbars.ui
		 DlgTreeWidget.ui
		 SceneInspector.ui
		 InputVector.ui
		 Placement.ui
		 TaskView/TaskAppearance.ui
)

SET(Gui_RES_SRCS
		 Icons/resource.qrc
		 Language/translation.qrc
		 iisTaskPanel/src/iisTaskPanel.qrc
)
QT4_ADD_RESOURCES(Gui_QRC_SRCS ${Gui_RES_SRCS})

QT4_WRAP_UI(Gui_UIC_HDRS ${Gui_UIC_SRCS})
SOURCE_GROUP("Uic" FILES ${Gui_UIC_HDRS})

# The command sources
SET(Command_CPP_SRCS
		 Action.cpp
		 Command.cpp
		 CommandDoc.cpp
		 CommandFeat.cpp
		 CommandMacro.cpp
		 CommandStd.cpp
		 CommandWindow.cpp
		 CommandTest.cpp
		 CommandView.cpp
)
SET(Command_SRCS
		 ${Command_CPP_SRCS}
		 Action.h
		 Command.h
)
SOURCE_GROUP("Command" FILES ${Command_SRCS})

# The dialog sources
SET(Dialog_CPP_SRCS
		 DemoMode.cpp
		 DlgActivateWindowImp.cpp
		 DlgDisplayPropertiesImp.cpp
		 DlgInputDialogImp.cpp
		 DlgMacroExecuteImp.cpp
		 DlgRunExternal.cpp
		 DlgEditFileIncludeProptertyExternal.cpp
		 DlgMacroRecordImp.cpp
		 DlgMaterialPropertiesImp.cpp
		 DlgParameterImp.cpp
		 DlgProjectInformationImp.cpp
		 DlgTipOfTheDayImp.cpp
		 DlgUndoRedo.cpp
		 InputVector.cpp
		 Placement.cpp
		 PropertyPage.cpp
		 SceneInspector.cpp
		 Transform.cpp
)

SET(Dialog_HPP_SRCS
		 DemoMode.h
		 DlgActivateWindowImp.h
		 DlgDisplayPropertiesImp.h
		 DlgInputDialogImp.h
		 DlgMacroExecuteImp.h
		 DlgRunExternal.h
		 DlgEditFileIncludeProptertyExternal.h
		 DlgMacroRecordImp.h
		 DlgMaterialPropertiesImp.h
		 DlgParameterImp.h
		 DlgProjectInformationImp.h
		 DlgTipOfTheDayImp.h
		 DlgUndoRedo.h
		 InputVector.h
		 Placement.h
		 PropertyPage.h
		 SceneInspector.h
		 Transform.h
)

SET(Dialog_SRCS
		 ${Dialog_CPP_SRCS}
		 ${Dialog_HPP_SRCS}
		 AboutApplication.ui
		 DemoMode.ui
		 DlgActivateWindow.ui
		 DlgAuthorization.ui
		 DlgDisplayProperties.ui
		 DlgInputDialog.ui
		 DlgMacroExecute.ui
		 DlgRunExternal.ui
		 DlgMacroRecord.ui
		 DlgMaterialProperties.ui
		 DlgParameter.ui
		 DlgProjectInformation.ui
		 DlgTipOfTheDay.ui
		 DlgTreeWidget.ui
		 InputVector.ui
		 Placement.ui
		 SceneInspector.ui
)
SOURCE_GROUP("Dialog" FILES ${Dialog_SRCS})

# The customize dialog sources
SET(Dialog_Customize_CPP_SRCS
		 DlgActionsImp.cpp
		 DlgCommandsImp.cpp
		 DlgCustomizeImp.cpp
		 DlgKeyboardImp.cpp
		 DlgToolbarsImp.cpp
)
SET(Dialog_Customize_HPP_SRCS
		 DlgActionsImp.h
		 DlgCommandsImp.h
		 DlgCustomizeImp.h
		 DlgKeyboardImp.h
		 DlgToolbarsImp.h
)
SET(Dialog_Customize_SRCS
		 ${Dialog_Customize_CPP_SRCS}
		 ${Dialog_Customize_HPP_SRCS}
		 DlgActions.ui
		 DlgChooseIcon.ui
		 DlgCommands.ui
		 DlgKeyboard.ui
		 DlgToolbars.ui
)
SOURCE_GROUP("Dialog\\Customize" FILES ${Dialog_Customize_SRCS})

# The settings dialog sources
SET(Dialog_Settings_CPP_SRCS
		 DlgEditorImp.cpp
		 DlgGeneralImp.cpp
		 DlgOnlineHelpImp.cpp
		 DlgPreferencesImp.cpp
		 DlgReportViewImp.cpp
		 DlgSettings3DViewImp.cpp
		 DlgSettingsUnitsImp.cpp
		 DlgSettingsViewColor.cpp
		 DlgSettingsColorGradientImp.cpp
		 DlgSettingsDocumentImp.cpp
		 DlgSettingsImageImp.cpp
		 DlgSettingsMacroImp.cpp
)
SET(Dialog_Settings_HPP_SRCS
		 DlgEditorImp.h
		 DlgGeneralImp.h
		 DlgOnlineHelpImp.h
		 DlgPreferencesImp.h
		 DlgReportViewImp.h
		 DlgSettings3DViewImp.h
		 DlgSettingsUnitsImp.h
		 DlgSettingsViewColor.h
		 DlgSettingsColorGradientImp.h
		 DlgSettingsDocumentImp.h
		 DlgSettingsImageImp.h
		 DlgSettingsMacroImp.h
)
SET(Dialog_Settings_SRCS
		 ${Dialog_Settings_CPP_SRCS}
		 ${Dialog_Settings_HPP_SRCS}
		 DlgEditor.ui
		 DlgGeneral.ui
		 DlgOnlineHelp.ui
		 DlgPreferences.ui
		 DlgReportView.ui
		 DlgSettings3DView.ui
		 DlgSettingsUnits.ui
		 DlgSettingsViewColor.ui
		 DlgSettingsColorGradient.ui
		 DlgSettingsDocument.ui
		 DlgSettingsImage.ui
		 DlgSettingsMacro.ui
)
SOURCE_GROUP("Dialog\\Settings" FILES ${Dialog_Settings_SRCS})

# The dock windows sources
SET(Dock_Windows_CPP_SRCS
		 CombiView.cpp
		 DockWindow.cpp
		 HelpView.cpp
		 PropertyView.cpp
		 ReportView.cpp
		 SelectionView.cpp
		 TaskPanelView.cpp
		 ToolBox.cpp
		 Tree.cpp
		 TreeView.cpp
)
SET(Dock_Windows_HPP_SRCS
		 CombiView.h
		 DockWindow.h
		 HelpView.h
		 PropertyView.h
		 ReportView.h
		 SelectionView.h
		 TaskPanelView.h
		 ToolBox.h
		 Tree.h
		 TreeView.h
)
SET(Dock_Windows_SRCS
		 ${Dock_Windows_CPP_SRCS}
		 ${Dock_Windows_HPP_SRCS}
)
SOURCE_GROUP("Dock Windows" FILES ${Dock_Windows_SRCS})

# The editor sources
SET(Editor_CPP_SRCS
		 CallTips.cpp
		 EditorView.cpp
		 PythonConsole.cpp
		 PythonConsolePy.cpp
		 PythonDebugger.cpp
		 PythonEditor.cpp
		 SyntaxHighlighter.cpp
		 TextEdit.cpp
)
SET(Editor_HPP_SRCS
		 CallTips.h
		 EditorView.h
		 PythonConsole.h
		 PythonConsolePy.h
		 PythonDebugger.h
		 PythonEditor.h
		 SyntaxHighlighter.h
		 TextEdit.h
)
SET(Editor_SRCS
		 ${Editor_CPP_SRCS}
		 ${Editor_HPP_SRCS}
)
SOURCE_GROUP("Editor" FILES ${Editor_SRCS})

# The help system
SET(Help_CPP_SRCS
		 Assistant.cpp
		 NetworkRetriever.cpp
		 OnlineDocumentation.cpp
		 WhatsThis.cpp
)
SET(Help_SRCS
		 ${Help_CPP_SRCS}
		 Assistant.h
		 NetworkRetriever.h
		 OnlineDocumentation.h
		 WhatsThis.h
)
SOURCE_GROUP("Help" FILES ${Help_SRCS})

# The Inventor sources
SET(Inventor_CPP_SRCS
		 SoFCBackgroundGradient.cpp
		 SoFCBoundingBox.cpp
		 SoFCColorBar.cpp
		 SoFCColorGradient.cpp
		 SoFCColorLegend.cpp
		 SoFCDB.cpp
		 SoFCInteractiveElement.cpp
		 SoFCOffscreenRenderer.cpp
		 SoFCSelection.cpp
		 SoFCSelectionAction.cpp
		 SoFCVectorizeSVGAction.cpp
		 SoFCVectorizeU3DAction.cpp
		 SoNavigationDragger.cpp
		 SoTextLabel.cpp
)
SET(Inventor_SRCS
		 ${Inventor_CPP_SRCS}
		 SoFCBackgroundGradient.h
		 SoFCBoundingBox.h
		 SoFCColorBar.h
		 SoFCColorGradient.h
		 SoFCColorLegend.h
		 SoFCDB.h
		 SoFCInteractiveElement.h
		 SoFCOffscreenRenderer.h
		 SoFCSelection.h
		 SoFCSelectionAction.h
		 SoFCVectorizeSVGAction.h
		 SoFCVectorizeU3DAction.h
		 SoNavigationDragger.h
		 SoTextLabel.h
)
SOURCE_GROUP("Inventor" FILES ${Inventor_SRCS})

# The i18n sources
SET(Language_SRCS
		 Language/Translator.cpp
		 Language/Translator.h
)
SOURCE_GROUP("Language" FILES ${Language_SRCS})

# The property editor
SET(Propertyeditor_SRCS
		 propertyeditor/PropertyEditor.cpp
		 propertyeditor/PropertyEditor.h
		 propertyeditor/PropertyItem.cpp
		 propertyeditor/PropertyItem.h
 		 propertyeditor/PropertyItemDelegate.cpp
		 propertyeditor/PropertyItemDelegate.h
		 propertyeditor/PropertyModel.cpp
		 propertyeditor/PropertyModel.h

)
SOURCE_GROUP("Propertyeditor" FILES ${Propertyeditor_SRCS})

# The task view
SET(Task_View_SRCS
		 TaskView/TaskAppearance.cpp
		 TaskView/TaskAppearance.h
		 TaskView/TaskAppearance.ui
		 TaskView/TaskEditControl.cpp
		 TaskView/TaskEditControl.h
		 TaskView/TaskEditControl.ui
		 TaskView/TaskView.cpp
		 TaskView/TaskView.h
		 TaskView/TaskDialog.cpp
		 TaskView/TaskDialog.h
		 TaskView/TaskWatcher.cpp
		 TaskView/TaskWatcher.h
)
SOURCE_GROUP("Task View" FILES ${Task_View_SRCS})

SET(iisTaskPanel_SRCS
		 iisTaskPanel/src/iisfreecadscheme.cpp
		 iisTaskPanel/src/iisfreecadscheme.h
		 iisTaskPanel/src/iisiconlabel.cpp
		 iisTaskPanel/src/iisiconlabel.h
		 iisTaskPanel/src/iistaskbox.cpp
		 iisTaskPanel/src/iistaskbox.h
		 iisTaskPanel/src/iistaskgroup.cpp
		 iisTaskPanel/src/iistaskgroup.h
		 iisTaskPanel/src/iistaskheader.cpp
		 iisTaskPanel/src/iistaskheader.h
		 iisTaskPanel/src/iistaskpanel.cpp
		 iisTaskPanel/src/iistaskpanel.h
		 iisTaskPanel/src/iistaskpanelscheme.cpp
		 iisTaskPanel/src/iistaskpanelscheme.h
		 iisTaskPanel/src/iiswinxptaskpanelscheme.cpp
		 iisTaskPanel/src/iiswinxptaskpanelscheme.h
		 iisTaskPanel/src/iistaskpanel_global.h
)
SOURCE_GROUP("Widget\\iisTaskPanel" FILES ${iisTaskPanel_SRCS})
set(iis_MOC_HDRS
		 iisTaskPanel/src/iisiconlabel.h
		 iisTaskPanel/src/iistaskbox.h
		 iisTaskPanel/src/iistaskgroup.h
		 iisTaskPanel/src/iistaskheader.h
)
qt4_wrap_cpp(iis_MOC_SRCS ${iis_MOC_HDRS})
SOURCE_GROUP("Widget\\iisTaskPanel\\Mocs" FILES ${iis_MOC_SRCS})


#SET(Resource_RCS
#		 Icons/resource.qrc
#		 Language/translation.qrc)
#fc_add_resources(Resource_SRCS ${Resource_RCS})
#SET(Resource_SRCS
#		 ${Resource_SRCS}
#		 Icons/resource.qrc
#		 Language/translation.qrc
#)
#SOURCE_GROUP("Resource" FILES ${Resource_SRCS})

# The 3d view
SET(View3D_CPP_SRCS
		 Flag.cpp
		 MouseModel.cpp
		 NavigationStyle.cpp
		 SplitView3DInventor.cpp
		 View.cpp
		 View3DInventor.cpp
		 View3DInventorExamples.cpp
		 View3DInventorViewer.cpp
		 View3DPy.cpp
)
SET(View3D_SRCS
		 ${View3D_CPP_SRCS}
		 Flag.h
		 MouseModel.h
		 NavigationStyle.h
		 SplitView3DInventor.h
		 View.h
		 View3DInventor.h
		 View3DInventorExamples.h
		 View3DInventorViewer.h
		 View3DPy.h
)
SOURCE_GROUP("View3D" FILES ${View3D_SRCS})

# The view provider sources
SET(Viewprovider_CPP_SRCS
		 ViewProvider.cpp
		 ViewProviderAnnotation.cpp
		 ViewProviderDocumentObject.cpp
		 ViewProviderDocumentObjectGroup.cpp
		 ViewProviderDocumentObjectPyImp.cpp
		 ViewProviderPythonFeaturePyImp.cpp
		 ViewProviderExtern.cpp
		 ViewProviderFeature.cpp
		 ViewProviderGeometryObject.cpp
		 ViewProviderInventorObject.cpp
		 ViewProviderMeasureDistance.cpp
		 ViewProviderPyImp.cpp
		 ViewProviderPythonFeature.cpp
		 ViewProviderVRMLObject.cpp
		 ViewProviderBuilder.cpp
)
SET(Viewprovider_SRCS
		 ${Viewprovider_CPP_SRCS}
		 ViewProvider.h
		 ViewProviderAnnotation.h
		 ViewProviderDocumentObject.h
		 ViewProviderDocumentObjectGroup.h
		 ViewProviderExtern.h
		 ViewProviderFeature.h
		 ViewProviderGeometryObject.h
		 ViewProviderInventorObject.h
		 ViewProviderMeasureDistance.h
		 ViewProviderPythonFeature.h
		 ViewProviderVRMLObject.h
		 ViewProviderBuilder.h
)
SOURCE_GROUP("Viewprovider" FILES ${Viewprovider_SRCS})

# The widget sources
SET(Widget_CPP_SRCS
		 FileDialog.cpp
		 MainWindow.cpp
		 MDIView.cpp
		 PrefWidgets.cpp
		 ProgressBar.cpp
		 SpinBox.cpp
		 Splashscreen.cpp
		 WidgetFactory.cpp
		 Widgets.cpp
		 Window.cpp
)
SET(Widget_HPP_SRCS
		 FileDialog.h
		 MainWindow.h
		 MDIView.h
		 PrefWidgets.h
		 ProgressBar.h
		 SpinBox.h
		 Splashscreen.h
		 WidgetFactory.h
		 Widgets.h
		 Window.h
)
SET(Widget_SRCS
		 ${Widget_CPP_SRCS}
		 ${Widget_HPP_SRCS}
)
SOURCE_GROUP("Widget" FILES ${Widget_SRCS})

# The workbench sources
SET(Workbench_CPP_SRCS
		 DockWindowManager.cpp
		 MenuManager.cpp
		 PythonWorkbenchPyImp.cpp
		 ToolBarManager.cpp
		 ToolBoxManager.cpp
		 Workbench.cpp
		 WorkbenchFactory.cpp
		 WorkbenchManager.cpp
		 WorkbenchPyImp.cpp
)
SET(Workbench_SRCS
		 ${Workbench_CPP_SRCS}
		 DockWindowManager.h
		 MenuManager.h
		 ToolBarManager.h
		 ToolBoxManager.h
		 Workbench.h
		 WorkbenchFactory.h
		 WorkbenchManager.h
)
SOURCE_GROUP("Workbench" FILES ${Workbench_SRCS})

SET(Selection_SRCS
		 SelectionObjectPyImp.cpp
		 SelectionObject.h
		 SelectionObject.cpp
 		 Selection.h
		 Selection.cpp
 		 SelectionFilter.h
		 SelectionFilter.cpp
		 SelectionFilter.y
		 SelectionFilter.l
)
SOURCE_GROUP("Selection" FILES ${Selection_SRCS})

# The FreeCADGui sources
SET(FreeCADGui_CPP_SRCS
		 Application.cpp
		 ApplicationPy.cpp
		 BitmapFactory.cpp
		 Document.cpp
		 DocumentModel.cpp
		 DocumentPyImp.cpp
		 GuiConsole.cpp
		 Macro.cpp
		 resource.cpp
		 Control.cpp
		 Thumbnail.cpp
		 WaitCursor.cpp
)
SET(FreeCADGui_SRCS
		 Application.h
		 BitmapFactory.h
		 Document.h
		 DocumentModel.h
		 Doxygen.cpp
		 FreeCADGuiInit.py
		 GuiConsole.h
		 InventorAll.h
		 Macro.h
		 PreCompiled.cpp
		 PreCompiled.h
		 Qt4All.h
		 Control.h
		 Thumbnail.h
		 WaitCursor.h
)

SET(FreeCADGui_SRCS
		 ${FreeCADGui_CPP_SRCS}
		 ${FreeCADGui_XML_SRCS}
		 ${iis_MOC_SRCS}
		 ${Gui_QRC_SRCS}
		 ${Gui_UIC_HDRS}
		 ${Command_SRCS}
		 ${Dialog_SRCS}
		 ${Dialog_Customize_SRCS}
		 ${Dialog_Settings_SRCS}
		 ${Dock_Windows_SRCS}
		 ${Editor_SRCS}
		 ${Help_SRCS}
		 ${Inventor_SRCS}
		 ${Language_SRCS}
		 ${Propertyeditor_SRCS}
		 ${Task_View_SRCS}
		 ${iisTaskPanel_SRCS}
		 ${Resource_SRCS}
		 ${View3D_SRCS}
		 ${Viewprovider_SRCS}
		 ${Widget_SRCS}
		 ${Workbench_SRCS}
		 ${Selection_SRCS}
		 ${FreeCADGui_SRCS}
)

if(MSVC)
	add_definitions(-D_PreComp_)
	SET(FreeCADGui_CPP_SRCS
		 Language/Translator.cpp
		 propertyeditor/PropertyEditor.cpp
		 propertyeditor/PropertyItem.cpp
 		 propertyeditor/PropertyItemDelegate.cpp
		 propertyeditor/PropertyModel.cpp
		 TaskView/TaskAppearance.cpp
		 TaskView/TaskEditControl.cpp
		 TaskView/TaskView.cpp
		 ${Command_CPP_SRCS}
		 ${Dialog_CPP_SRCS}
		 ${Dialog_Customize_CPP_SRCS}
		 ${Dialog_Settings_CPP_SRCS}
		 ${Dock_Windows_CPP_SRCS}
		 ${Editor_CPP_SRCS}
		 ${Help_CPP_SRCS}
		 ${Inventor_CPP_SRCS}
		 ${View3D_CPP_SRCS}
		 ${Viewprovider_CPP_SRCS}
		 ${Widget_CPP_SRCS}
		 ${Workbench_CPP_SRCS}
		 ${FreeCADGui_CPP_SRCS}
	)
	ADD_MSVC_PRECOMPILED_HEADER("PreCompiled.h" "PreCompiled.cpp" FreeCADGui_CPP_SRCS)
endif(MSVC)

add_library(FreeCADGui SHARED ${FreeCADGui_SRCS})

target_link_libraries(FreeCADGui ${FreeCADGui_LIBS})

# Note this is IDE specific, not necessarily platform specific
if(MSVC)
	set_target_properties(FreeCADGui PROPERTIES DEBUG_OUTPUT_NAME "FreeCADGuiD")
	set_target_properties(FreeCADGui PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
	# dirty hack to avoid Debug/Release subdirectory
	set_target_properties(FreeCADGui PROPERTIES PREFIX "../")
else(MSVC)
	set_target_properties(FreeCADGui PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
endif(MSVC)

if(WIN32)
	INSTALL(TARGETS FreeCADGui
	  RUNTIME DESTINATION bin
	  LIBRARY DESTINATION lib
	)
else(WIN32)
	INSTALL(TARGETS FreeCADGui
	  LIBRARY DESTINATION lib
	)
endif(WIN32)
