
# CMakeLists.txt is in root directory.
# set (PROJECT_ROOT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/..)
# set (IMGUI_ROOT_DIR ${CMAKE_CURRENT_LIST_DIR}/../libs/imgui)
# set (IMGUI_BACKENDS_DIR ${IMGUI_ROOT_DIR}/backends)


cmake_minimum_required( VERSION 3.6 )

set(PROJECT_NAME ImGCS)
project(${PROJECT_NAME})

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

add_definitions(-w)


############################################################
### Dear ImGui library

set( IMGUI_SRC_DIR ${CMAKE_CURRENT_LIST_DIR}/../libs/imgui )

# set( IMGUI_PUBLIC_HEADERS ${IMGUI_SRC_DIR}/imgui.h )

set( IMGUI_SOURCES
    ${IMGUI_SRC_DIR}/imgui.cpp
    ${IMGUI_SRC_DIR}/imgui_draw.cpp
    ${IMGUI_SRC_DIR}/imgui_demo.cpp
    ${IMGUI_SRC_DIR}/imgui_widgets.cpp
)

add_library( imgui STATIC ${IMGUI_SOURCES} )
target_include_directories( imgui PRIVATE ${IMGUI_SRC_DIR} )



####################################################
### The application

set( MAIN_APP_SOURCES ${CMAKE_CURRENT_LIST_DIR}/main.cpp)

set( MAIN_APP_NAME imguiapp )
add_executable( ${MAIN_APP_NAME} ${MAIN_APP_SOURCES} )

target_include_directories( 
    ${MAIN_APP_NAME} PRIVATE
    ${CMAKE_CURRENT_LIST_DIR}/include
)
target_link_libraries( ${MAIN_APP_NAME} imgui )


### Set specific flags for emcc and to place the result under ui-web/js/
set_target_properties( ${MAIN_APP_NAME} PROPERTIES
    COMPILE_FLAGS "-O3 -g -s WASM=1 -s USE_WEBGL2=1 -s USE_GLFW=3 -s FULL_ES3=1 -s DEMANGLE_SUPPORT=1 -s DISABLE_DEPRECATED_FIND_EVENT_TARGET_BEHAVIOR=1 -s ASSERTIONS=1 -s DISABLE_EXCEPTION_CATCHING=0 -s FORCE_FILESYSTEM=1"
    LINK_FLAGS "-O3 -g -s WASM=1 -s USE_WEBGL2=1 -s USE_GLFW=3 -s FULL_ES3=1 -s DEMANGLE_SUPPORT=1 -s DISABLE_DEPRECATED_FIND_EVENT_TARGET_BEHAVIOR=1 -s ASSERTIONS=1 -s DISABLE_EXCEPTION_CATCHING=0 -s FORCE_FILESYSTEM=1 -s ALLOW_MEMORY_GROWTH=1 -s EXTRA_EXPORTED_RUNTIME_METHODS=['cwrap, FS']"
    RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/ui-web/js
    # SUFFIX ".html"
)

target_compile_definitions( ${MAIN_APP_NAME} PRIVATE -DIMGUIAPP_TARGET_WEB)