CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
#PROJECT(VMLTK_MODULE)

IF(CMAKE_BUILD_TYPE STREQUAL "Debug")
	MESSAGE("====== Debug mode ======")
	SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu99 -Wall -Wextra -pedantic -pthread -O0 -g3 -fasynchronous-unwind-tables")
	SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wall -Wextra -pedantic -pthread -O0 -g3 -fasynchronous-unwind-tables")
	SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -rdynamic")
	SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -rdynamic")
	SET(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -rdynamic")
	ADD_DEFINITIONS("-DDEBUG")
	SET(DEBUG_ENABLE true)
ELSE(CMAKE_BUILD_TYPE STREQUAL "Debug")
	IF(CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo")
		MESSAGE("====== RelWithDebInfo mode ======")
		SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu99 -O3 -Wall -Wextra -pedantic -pthread")
		SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -O3 -Wall -Wextra -pedantic -pthread")
		ADD_DEFINITIONS("-DDEBUG")
		SET(DEBUG_ENABLE true)
	ELSE(CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo")
		MESSAGE("====== Release mode ======")
		SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu99 -O3 -Wall -Wextra -pedantic -pthread -s")
		SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -O3 -Wall -Wextra -pedantic -pthread -s")
		ADD_DEFINITIONS("-DNDEBUG")
		SET(DEBUG_ENABLE false)
	ENDIF(CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo")
ENDIF(CMAKE_BUILD_TYPE STREQUAL "Debug")

SET(CMAKE_C_FLAGS_TEMP ${CMAKE_C_FLAGS})

ADD_DEFINITIONS("-DLV_CONF_INCLUDE_SIMPLE -DPC_SIMULATOR -D_GNU_SOURCE")

#
# liblvglpcsimulator_x86_64.a 
#
SET(OPEN_SRC_3RD_INSTALL_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../../../install_temp_open_src_3rd")

SET(LIB_SRC_LIST_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../open_source_3rd/lvgl_all")

FILE(GLOB LIB_SRC_LIST
	"${LIB_SRC_LIST_PATH}/lvgl/src/*/*.c"
	"${LIB_SRC_LIST_PATH}/lvgl/custom/*.c"
	"${LIB_SRC_LIST_PATH}/lv_drivers/display/monitor.c"
	"${LIB_SRC_LIST_PATH}/lv_drivers/indev/mouse.c"
	"${LIB_SRC_LIST_PATH}/lv_drivers/indev/mousewheel.c"
	"${LIB_SRC_LIST_PATH}/lv_drivers/indev/keyboard.c"
	)

SET(LIB_TARGET_NAME lvglpcsimulator_x86_64)

SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS_TEMP} -Wno-missing-field-initializers")

STRING(REPLACE "-pedantic" "" CMAKE_C_FLAGS ${CMAKE_C_FLAGS})

INCLUDE_DIRECTORIES(${LIB_SRC_LIST_PATH})

#ADD_LIBRARY(${LIB_TARGET_NAME} SHARED ${LIB_SRC_LIST})
ADD_LIBRARY(${LIB_TARGET_NAME} STATIC ${LIB_SRC_LIST})

TARGET_LINK_LIBRARIES(${LIB_TARGET_NAME} SDL2)

SET_TARGET_PROPERTIES(${LIB_TARGET_NAME} PROPERTIES SOVERSION 1 VERSION 1.0.0.0)

SET(LIBRARY_OUTPUT_PATH "${OPEN_SRC_3RD_INSTALL_DIR}/lib")

#
# lvgl_pcsimulator_x86_64 
#
SET(SRC_LIST "${CMAKE_CURRENT_SOURCE_DIR}/../lvgl_pcsimulator.c" "${CMAKE_CURRENT_SOURCE_DIR}/../lvgl_widgets.c" "${CMAKE_CURRENT_SOURCE_DIR}/../img/img_logo_vatics.c" "${CMAKE_CURRENT_SOURCE_DIR}/../img/img_btn_red.c" "${CMAKE_CURRENT_SOURCE_DIR}/../img/img_btn_green.c" "${CMAKE_CURRENT_SOURCE_DIR}/../jianyaya_20.c" "${CMAKE_CURRENT_SOURCE_DIR}/../img/img_logo_transp.c")

INCLUDE_DIRECTORIES("${OPEN_SRC_3RD_INSTALL_DIR}/include/lvgl_all" "${CMAKE_CURRENT_SOURCE_DIR}")

LINK_DIRECTORIES("${OPEN_SRC_3RD_INSTALL_DIR}/lib")

MESSAGE("${INCLUDE_DIRECTORIES}")

SET(TARGET_NAME lvgl_pcsimulator_x86_64)

SET(CMAKE_C_FLAGS ${CMAKE_C_FLAGS_TEMP})

ADD_EXECUTABLE(${TARGET_NAME} ${SRC_LIST})

ADD_DEPENDENCIES(${TARGET_NAME} ${LIB_TARGET_NAME})

TARGET_LINK_LIBRARIES(${TARGET_NAME} ${LIB_TARGET_NAME})

SET(EXECUTABLE_OUTPUT_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../bin/vienna")
