set(H_LIST
	ide.h
	version.h
	UppDlg.h
	ide.key
	ide.lay
	ide.iml
	theide.desktop
	Copying
)

set(SRC_LIST
	SelectPkg.cpp
	UppWspc.cpp
	UppDlg.cpp
	Package.cpp
	Template.cpp
	Console.cpp
	FindInFiles.cpp
	ide.cpp
	idefile.cpp
	EditorTabBar.cpp
	Bottom.cpp
	t.cpp
	Cpp.cpp
	Assist.cpp
	ParamInfo.cpp
	Navigator.cpp
	Annotations.cpp
	Virtuals.cpp
	Thisbacks.cpp
	Goto.cpp
	Setup.cpp
	Custom.cpp
	Print.cpp
	Insert.cpp
	idetool.cpp
	Install.cpp
	idebar.cpp
	idewin.cpp
	About.cpp
	Help.cpp
	Util.cpp
	Macro.cpp
	Calc.cpp
	FormatCode.cpp
	Abbr.cpp
	Qtf.cpp
	Update.cpp
	Methods.cpp
	AutoSetup.cpp
	OutputMode.cpp
	Build.cpp
	Debug.cpp
	Valgrind.cpp
	Export.cpp
)

if(WIN32)
	list(APPEND SRC_LIST ide.rc)
endif(WIN32)

add_definitions(-DflagMAIN)

# Get global initialization list of files
get_cmake_property(INIT_LIST GLOBAL_INIT_LIST)
add_executable(ide ${INIT_LIST} ${SRC_LIST})

if(MSVC)
	set_target_properties(ide PROPERTIES LINK_FLAGS -subsystem:windows)
else() # GCC
	set_target_properties(ide PROPERTIES LINK_FLAGS -mwindows)
endif()

set(USES_LIST ide_Common ide_Core ide_LayDes ide_IconDes ide_Builders ide_Debuggers ide_Browser CodeEditor CtrlLib Web plugin_bz2 HexView art_BlueBar plugin_astyle usvn TextDiffCtrl TabBar)

if(UNIX OR APPLE)
	list(APPEND USES_LIST ide_SrcUpdater)
endif()

if(BUILD_WITH_RAINBOW)
	list(APPEND USES_LIST rainbow_${RAINBOW_BACKEND})
endif()

#link(WIN32 MSC) /MAP;
#if(WIN32 AND MSVC)
#	set_target_properties(ide PROPERTIES LINK_FLAGS /MAP)
#endif()

add_dependencies(ide ${USES_LIST})
target_link_libraries(ide ${USES_LIST})

install(TARGETS ide DESTINATION ${CMAKE_INSTALL_PREFIX})
