set(H_LIST
	CtrlCore.h
	MKeys.h
	stdids.h
	TopWindow.h
	lay.h
	llay.h
	Ctrl.iml
	CtrlCore.t
	Win32Gui.h
	Win32GuiA.h
	Win32Keys.h
	MultiMon.dli
	Win32Ctrl.h
	Win32Top.h
	Win32Msg.i
	X11Gui.h
	X11GuiA.h
	X11Keys.h
	X11Ctrl.h
	X11Top.h
	X11Event.i
	Copying
)

set(SRC_LIST
	SystemDraw.cpp
	Frame.cpp
	CtrlMt.cpp
	Ctrl.cpp
	CtrlChild.cpp
	CtrlPos.cpp
	CtrlDraw.cpp
	CtrlMouse.cpp
	CtrlKbd.cpp
	CtrlTimer.cpp
	CtrlClip.cpp
	LocalLoop.cpp
	TopWindow.cpp
	DrawWin32.cpp
	DrawOpWin32.cpp
	DrawTextWin32.cpp
	ImageWin32.cpp
	MetaFile.cpp
	UtilWin32.cpp
	Win32Ctrl.cpp
	Win32Wnd.cpp
	Win32Clip.cpp
	Win32DnD.cpp
	Win32Proc.cpp
	TopWin32.cpp
	DHCtrl.cpp
	DrawX11.cpp
	DrawOpX11.cpp
	DrawTextX11.cpp
	ImageX11.cpp
	UtilX11.cpp
	X11Ctrl.cpp
	X11Wnd.cpp
	X11Proc.cpp
	X11Clip.cpp
	X11DnD.cpp
	TopWinX11.cpp
	X11ImgClip.cpp
	X11App.cpp
	X11DHCtrl.cpp
	ParseRTF.cpp
	EncodeRTF.cpp
)

set(ISRC_LIST
	CtrlCore.cpp
)

global_list_append(GLOBAL_INIT_LIST ISRC_LIST)

add_library(CtrlCore ${SRC_LIST})

set(USES_LIST Draw plugin_bmp RichText)

#library(WIN32 !MSC8ARM) "advapi32 comdlg32 comctl32";
#library(WIN32 !MSC8ARM) "user32 gdi32";
if(WIN32)
	list(APPEND LINK_LIST advapi32 comdlg32 comctl32 user32 gdi32)
endif()

#library((LINUX | BSD) & !NOGTK & !RAINBOW) "gtk-x11-2.0  gdk-x11-2.0  atk-1.0  gdk_pixbuf-2.0  m  pangocairo-1.0  fontconfig  Xext  Xrender  Xinerama  Xi  Xrandr  Xcursor Xfixes pango-1.0  cairo  X11  gobject-2.0  gmodule-2.0  glib-2.0";
if(CMAKE_SYSTEM MATCHES Linux OR CMAKE_SYSTEM MATCHES BSD AND NOT BUILD_WITHOUT_GTK AND NOT BUILD_WITH_RAINBOW)
	list(APPEND LINK_LIST gtk-x11-2.0  gdk-x11-2.0  atk-1.0  gdk_pixbuf-2.0  m  pangocairo-1.0  fontconfig  Xext  Xrender  Xinerama  Xi  Xrandr  Xcursor Xfixes pango-1.0  cairo  X11  gobject-2.0  gmodule-2.0  glib-2.0)
endif()

#library(LINUX !RAINBOW) "X11 Xrender";
#library(LINUX !RAINBOW) dl;
if(CMAKE_SYSTEM MATCHES Linux AND NOT BUILD_WITH_RAINBOW)
	list(APPEND LINK_LIST X11 Xrender dl)
endif()

#library(LINUX !XLFD !RAINBOW) Xft;
if(CMAKE_SYSTEM MATCHES Linux AND NOT BUILD_WITH_RAINBOW) # TODO: !XLFD
	list(APPEND LINK_LIST Xft)
endif()

#library(BSD !RAINBOW) "X11  Xau Xdmcp";
if(CMAKE_SYSTEM MATCHES BSD AND NOT BUILD_WITH_RAINBOW)
	list(APPEND LINK_LIST X11  Xau Xdmcp)
endif()

#library(BSD !XLFD !RAINBOW) "Xft fontconfig Xrender freetype expat";
if(CMAKE_SYSTEM MATCHES BSD AND NOT BUILD_WITH_RAINBOW) # TODO: !XLFD
	list(APPEND LINK_LIST Xft fontconfig Xrender freetype expat)
endif()

#library(LINUX !XLFD !SHARED !RAINBOW) "fontconfig Xrender freetype";
if(CMAKE_SYSTEM MATCHES Linux AND NOT BUILD_SHARED_LIBS AND NOT BUILD_WITH_RAINBOW) # TODO: !XLFD
	list(APPEND LINK_LIST fontconfig Xrender freetype)
endif()

#library(OSX11) "X11 Xft fontconfig Xrender freetype expat";
if(APPLE)
	list(APPEND LINK_LIST X11 Xft fontconfig Xrender freetype expat)
endif()

#library(FREEBSD) xcb;
if(CMAKE_SYSTEM MATCHES FreeBSD)
	list(APPEND LINK_LIST xcb)
endif()

#library(POSIX !NOGTK !RAINBOW) notify;
if(UNIX OR APPLE AND NOT BUILD_WITHOUT_GTK AND NOT BUILD_WITH_RAINBOW)
	list(APPEND LINK_LIST notify)
endif()

add_dependencies(CtrlCore ${USES_LIST})
target_link_libraries(CtrlCore ${USES_LIST} ${LINK_LIST})
