cmake_minimum_required(VERSION 2.8)

if(NOT CMAKE_BUILD_TYPE)
	set(CMAKE_BUILD_TYPE Release CACHE STRING "Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel")
endif()

project(Umk)

#set(CMAKE_VERBOSE_MAKEFILE 1)

# Add path for custom modules
set(CMAKE_MODULE_PATH
	${CMAKE_MODULE_PATH}
	"${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules"
)

# Include and library directories
include_directories(BEFORE ${CMAKE_CURRENT_SOURCE_DIR})

include(AddUppDefinitions)
include(UppProcessSources)

if(CMAKE_COMPILER_IS_GNUCC)
	set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -fexceptions -ffunction-sections -fdata-sections")
elseif(MSVC)
	set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -GS-")
endif()

if(MINGW)
  # The -O3 might be unreliable on MinGW. Use -Os instead.
	replace_compiler_option(CMAKE_C_FLAGS_RELEASE "-O3" "-Os")
	replace_compiler_option(CMAKE_CXX_FLAGS_RELEASE "-O3" "-Os")
endif()

# Libraries
add_subdirectory(plugin/z)
add_subdirectory(Core)
add_subdirectory(coff)
add_subdirectory(Esc)
add_subdirectory(plugin/bz2)
add_subdirectory(Web)
add_subdirectory(coff/binobj)
add_subdirectory(ide/Core)
add_subdirectory(ide/Builders)
# Executable
add_subdirectory(umk)
