##
#   Falcon GTK+ module
#

falcon_define_module( CURRENT_MODULE gtk )

##
#   Sources
#
set( SRC_FILES
    g_Object.cpp
    g_ParamSpec.cpp
    gdk_Bitmap.cpp
    gdk_Color.cpp
    gdk_Colormap.cpp
    gdk_Cursor.cpp
    gdk_Display.cpp
    gdk_DragContext.cpp
    gdk_Drawable.cpp
    gdk_Event.cpp
    gdk_EventButton.cpp
    gdk_GC.cpp
    gdk_GCValues.cpp
    gdk_Geometry.cpp
    gdk_Pixbuf.cpp
    gdk_Pixmap.cpp
    gdk_Point.cpp
    gdk_Rectangle.cpp
    gdk_Region.cpp
    gdk_Screen.cpp
    gdk_Visual.cpp
    gdk_Window.cpp
    gtk_AboutDialog.cpp
    gtk_Action.cpp
    gtk_Activatable.cpp
    gtk_Adjustment.cpp
    gtk_Alignment.cpp
    gtk_Arrow.cpp
    gtk_AspectFrame.cpp
    gtk_Bin.cpp
    gtk_Box.cpp
    gtk_ButtonBox.cpp
    gtk_Button.cpp
    gtk_Buildable.cpp
    gtk_CellEditable.cpp
    gtk_CellRenderer.cpp
    gtk_CellRendererAccel.cpp
    gtk_CellRendererCombo.cpp
    gtk_CellRendererPixbuf.cpp
    gtk_CellRendererProgress.cpp
    gtk_CellRendererSpin.cpp
    gtk_CellRendererSpinner.cpp
    gtk_CellRendererText.cpp
    gtk_CellRendererToggle.cpp
    gtk_CheckButton.cpp
    gtk_CheckMenuItem.cpp
    gtk_ColorButton.cpp
    gtk_ColorSelectionDialog.cpp
    gtk_ComboBox.cpp
    gtk_ComboBoxEntry.cpp
    gtk_Container.cpp
    gtk_Dialog.cpp
    gtk_enums.cpp
    gtk_Editable.cpp
    gtk_Entry.cpp
    gtk_EntryBuffer.cpp
    gtk_EventBox.cpp
    gtk_Expander.cpp
    gtk_FileChooser.cpp
    gtk_FileChooserButton.cpp
    gtk_FileChooserDialog.cpp
    gtk_FileFilter.cpp
    gtk_FileFilterInfo.cpp
    gtk_Fixed.cpp
    gtk_FontButton.cpp
    gtk_Frame.cpp
    gtk_HBox.cpp
    gtk_HButtonBox.cpp
    gtk_HPaned.cpp
    gtk_HRuler.cpp
    gtk_HScale.cpp
    gtk_HScrollbar.cpp
    gtk_Image.cpp
    gtk_ImageMenuItem.cpp
    gtk_InfoBar.cpp
    gtk_Invisible.cpp
    gtk_Item.cpp
    gtk_Label.cpp
    gtk_Layout.cpp
    gtk_LinkButton.cpp
    gtk_ListStore.cpp
    gtk_Main.cpp
    gtk_Menu.cpp
    gtk_MenuBar.cpp
    gtk_MenuItem.cpp
    gtk_MenuShell.cpp
    gtk_MenuToolButton.cpp
    gtk_MessageDialog.cpp
    gtk_Misc.cpp
    gtk_Object.cpp
    gtk_OptionMenu.cpp
    gtk_Orientable.cpp
    gtk_Paned.cpp
    gtk_Progress.cpp
    gtk_ProgressBar.cpp
    gtk_RadioAction.cpp
    gtk_RadioButton.cpp
    gtk_RadioMenuItem.cpp
    gtk_RadioToolButton.cpp
    gtk_Range.cpp
    gtk_RecentFilter.cpp
    gtk_RecentFilterInfo.cpp
    gtk_Requisition.cpp
    gtk_Ruler.cpp
    gtk_Scale.cpp
    gtk_ScaleButton.cpp
    gtk_Scrollbar.cpp
    gtk_SeparatorMenuItem.cpp
    gtk_SeparatorToolItem.cpp
    gtk_SpinButton.cpp
    gtk_Statusbar.cpp
    gtk_Stock.cpp
    gtk_Table.cpp
    gtk_TearoffMenuItem.cpp
    gtk_TextBuffer.cpp
    gtk_TextIter.cpp
    gtk_TextMark.cpp
    gtk_TextTag.cpp
    gtk_TextTagTable.cpp
    gtk_TextView.cpp
    gtk_ToggleAction.cpp
    gtk_ToggleButton.cpp
    gtk_ToggleToolButton.cpp
    gtk_Toolbar.cpp
    gtk_ToolButton.cpp
    gtk_ToolItem.cpp
    gtk_ToolItemGroup.cpp
    gtk_ToolPalette.cpp
    gtk_ToolShell.cpp
    gtk_TreeIter.cpp
    gtk_TreeModel.cpp
    gtk_TreeModelFilter.cpp
    gtk_TreeModelSort.cpp
    gtk_TreePath.cpp
    gtk_TreeRowReference.cpp
    gtk_TreeSortable.cpp
    gtk_TreeStore.cpp
    gtk_TreeView.cpp
    gtk_TreeViewColumn.cpp
    gtk_VBox.cpp
    gtk_VButtonBox.cpp
    gtk_VolumeButton.cpp
    gtk_VPaned.cpp
    gtk_VRuler.cpp
    gtk_VScale.cpp
    gtk_VScrollbar.cpp
    gtk_Widget.cpp
    gtk_Window.cpp
    gtk_WindowGroup.cpp
    modgtk.cpp
    modgtk_st.cpp
    )

##
#   Header files.  If not added to the target source, they won't show
#   up in Visual Studio.
#
set( HDR_FILES
    g_Object.hpp
    g_ParamSpec.hpp
    gdk_Bitmap.hpp
    gdk_Color.hpp
    gdk_Colormap.hpp
    gdk_Cursor.hpp
    gdk_Display.hpp
    gdk_DragContext.hpp
    gdk_Drawable.hpp
    gdk_Event.hpp
    gdk_EventButton.hpp
    gdk_GC.hpp
    gdk_GCValues.hpp
    gdk_Geometry.hpp
    gdk_Pixbuf.hpp
    gdk_Pixmap.hpp
    gdk_Point.hpp
    gdk_Rectangle.hpp
    gdk_Region.hpp
    gdk_Screen.hpp
    gdk_Visual.hpp
    gdk_Window.hpp
    gtk_AboutDialog.hpp
    gtk_Action.hpp
    gtk_Activatable.hpp
    gtk_Adjustment.hpp
    gtk_Alignment.hpp
    gtk_Arrow.hpp
    gtk_AspectFrame.hpp
    gtk_Bin.hpp
    gtk_Box.hpp
    gtk_ButtonBox.hpp
    gtk_Button.hpp
    gtk_Buildable.hpp
    gtk_CellEditable.hpp
    gtk_CellRenderer.hpp
    gtk_CellRendererAccel.hpp
    gtk_CellRendererCombo.hpp
    gtk_CellRendererPixbuf.hpp
    gtk_CellRendererProgress.hpp
    gtk_CellRendererSpin.hpp
    gtk_CellRendererSpinner.hpp
    gtk_CellRendererText.hpp
    gtk_CellRendererToggle.hpp
    gtk_CheckButton.hpp
    gtk_CheckMenuItem.hpp
    gtk_ColorButton.hpp
    gtk_ColorSelectionDialog.hpp
    gtk_ComboBox.hpp
    gtk_ComboBoxEntry.hpp
    gtk_Container.hpp
    gtk_Dialog.hpp
    gtk_enums.hpp
    gtk_Editable.hpp
    gtk_Entry.hpp
    gtk_EntryBuffer.hpp
    gtk_EventBox.hpp
    gtk_Expander.hpp
    gtk_FileChooser.hpp
    gtk_FileChooserButton.hpp
    gtk_FileChooserDialog.hpp
    gtk_FileFilter.hpp
    gtk_FileFilterInfo.hpp
    gtk_Fixed.hpp
    gtk_FontButton.hpp
    gtk_Frame.hpp
    gtk_HBox.hpp
    gtk_HButtonBox.hpp
    gtk_HPaned.hpp
    gtk_HRuler.hpp
    gtk_HScale.hpp
    gtk_HScrollbar.hpp
    gtk_Image.hpp
    gtk_ImageMenuItem.hpp
    gtk_InfoBar.hpp
    gtk_Invisible.hpp
    gtk_Item.hpp
    gtk_Label.hpp
    gtk_Layout.hpp
    gtk_LinkButton.hpp
    gtk_ListStore.hpp
    gtk_Main.hpp
    gtk_Menu.hpp
    gtk_MenuBar.hpp
    gtk_MenuItem.hpp
    gtk_MenuShell.hpp
    gtk_MenuToolButton.hpp
    gtk_MessageDialog.hpp
    gtk_Misc.hpp
    gtk_Object.hpp
    gtk_OptionMenu.hpp
    gtk_Orientable.hpp
    gtk_Paned.hpp
    gtk_Progress.hpp
    gtk_ProgressBar.hpp
    gtk_RadioAction.hpp
    gtk_RadioButton.hpp
    gtk_RadioMenuItem.hpp
    gtk_RadioToolButton.hpp
    gtk_Range.hpp
    gtk_RecentFilter.hpp
    gtk_RecentFilterInfo.hpp
    gtk_Requisition.hpp
    gtk_Ruler.hpp
    gtk_Scale.hpp
    gtk_ScaleButton.hpp
    gtk_Scrollbar.hpp
    gtk_SeparatorMenuItem.hpp
    gtk_SeparatorToolItem.hpp
    gtk_SpinButton.hpp
    gtk_Statusbar.hpp
    gtk_Stock.hpp
    gtk_Table.hpp
    gtk_TearoffMenuItem.hpp
    gtk_TextBuffer.hpp
    gtk_TextIter.hpp
    gtk_TextMark.hpp
    gtk_TextTag.hpp
    gtk_TextTagTable.hpp
    gtk_TextView.hpp
    gtk_ToggleAction.hpp
    gtk_ToggleButton.hpp
    gtk_ToggleToolButton.hpp
    gtk_Toolbar.hpp
    gtk_ToolButton.hpp
    gtk_ToolItem.hpp
    gtk_ToolItemGroup.hpp
    gtk_ToolPalette.hpp
    gtk_ToolShell.hpp
    gtk_TreeIter.hpp
    gtk_TreeModel.hpp
    gtk_TreeModelFilter.hpp
    gtk_TreeModelSort.hpp
    gtk_TreePath.hpp
    gtk_TreeRowReference.hpp
    gtk_TreeSortable.hpp
    gtk_TreeStore.hpp
    gtk_TreeView.hpp
    gtk_TreeViewColumn.hpp
    gtk_VBox.hpp
    gtk_VButtonBox.hpp
    gtk_VolumeButton.hpp
    gtk_VPaned.hpp
    gtk_VRuler.hpp
    gtk_VScale.hpp
    gtk_VScrollbar.hpp
    gtk_Widget.hpp
    gtk_Window.hpp
    gtk_WindowGroup.hpp
    modgtk.hpp
    modgtk_st.hpp
    modgtk_version.hpp
    )

##
#   Target
#
add_library( ${CURRENT_MODULE} MODULE
    ${SRC_FILES}
    ${HDR_FILES}
    )

##
#   Linking
#
if ( WIN32 )

    target_link_libraries( ${CURRENT_MODULE}
        ${Falcon_LIBRARIES}
        ${GTK2_LIBRARIES}
        )

else()

    target_link_libraries( ${CURRENT_MODULE}
        ${Falcon_LIBRARIES}
        ${GTK2_LIBRARIES}
        gobject-2.0
        )

endif()

##
#   Install
#
falcon_install_module( ${CURRENT_MODULE} )
