cmake_minimum_required(VERSION 3.4.1)
project(panopainter)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} \
    -std=c++14 -O2                      \
    -s USE_GLFW=3                       \
    -s USE_WEBGL2=1                     \
    -s FULL_ES3=1                       \
    -s USE_PTHREADS=1                   \
    -s ASSERTIONS=2                     \
    -s TOTAL_MEMORY=64Mb                \
    -s ALLOW_MEMORY_GROWTH=1            \
    -s WASM_MEM_MAX=512MB               \
")
add_executable(panopainter 
    src/main.cpp
	../libs/yoga/yoga/log.cpp
	../libs/yoga/yoga/Utils.cpp
	../libs/yoga/yoga/YGConfig.cpp
	../libs/yoga/yoga/YGEnums.cpp
	../libs/yoga/yoga/YGLayout.cpp
	../libs/yoga/yoga/YGMarker.cpp
	../libs/yoga/yoga/YGNode.cpp
	../libs/yoga/yoga/YGNodePrint.cpp
	../libs/yoga/yoga/YGStyle.cpp
	../libs/yoga/yoga/YGValue.cpp
	../libs/yoga/yoga/Yoga.cpp
	../libs/tinyxml2/tinyxml2.cpp
	../libs/jpeg/jpgd.cpp
	../libs/jpeg/jpge.cpp
	../libs/poly2tri/poly2tri/common/shapes.cc
	../libs/poly2tri/poly2tri/sweep/advancing_front.cc
	../libs/poly2tri/poly2tri/sweep/cdt.cc
	../libs/poly2tri/poly2tri/sweep/sweep_context.cc
	../libs/poly2tri/poly2tri/sweep/sweep.cc
	../libs/fmt/src/format.cc
	../src/pch.cpp
	../src/util.cpp
	../src/rtt.cpp
	../src/bezier.cpp
	../src/asset.cpp
	../src/image.cpp
	../src/texture.cpp
	../src/font.cpp
	../src/shader.cpp
	../src/shape.cpp
	../src/app.cpp
	../src/app_cloud.cpp
	../src/app_dialogs.cpp
	../src/app_events.cpp
	../src/app_layout.cpp
	../src/app_shaders.cpp
    ../src/app_vr.cpp
	../src/brush.cpp
	../src/canvas.cpp
	../src/canvas_layer.cpp
	../src/canvas_actions.cpp
	../src/canvas_modes.cpp
	../src/log.cpp
	../src/action.cpp
	../src/layout.cpp
	../src/version.cpp
	../src/node.cpp
	../src/node_about.cpp
	../src/node_border.cpp
	../src/node_button.cpp
	../src/node_button_custom.cpp
	../src/node_canvas.cpp
	../src/node_checkbox.cpp
	../src/node_color_quad.cpp
	../src/node_colorwheel.cpp
	../src/node_combobox.cpp
	../src/node_changelog.cpp
	../src/node_dialog_browse.cpp
	../src/node_dialog_cloud.cpp
	../src/node_dialog_open.cpp
	../src/node_dialog_picker.cpp
	../src/node_dialog_layer_rename.cpp
	../src/node_dialog_resize.cpp
	../src/node_icon.cpp
	../src/node_image.cpp
	../src/node_image_texture.cpp
	../src/node_message_box.cpp
	../src/node_panel_brush.cpp
	../src/node_panel_color.cpp
	../src/node_panel_grid.cpp
    ../src/node_panel_floating.cpp
	../src/node_panel_layer.cpp
	../src/node_panel_stroke.cpp
    ../src/node_panel_quick.cpp
	../src/node_popup_menu.cpp
	../src/node_progress_bar.cpp
	../src/node_settings.cpp
	../src/node_slider.cpp
	../src/node_stroke_preview.cpp
	../src/node_text.cpp
	../src/node_text_input.cpp
    ../src/node_tool_bucket.cpp
	../src/node_usermanual.cpp
	../src/node_viewport.cpp
	../src/node_scroll.cpp
	../src/abr.cpp
	../src/binary_stream.cpp
	../src/serializer.cpp
	../src/settings.cpp
	../src/node_input_box.cpp
	../src/node_dialog_export_ppbr.cpp
)
set_target_properties(panopainter PROPERTIES SUFFIX ".html")
set_target_properties(panopainter PROPERTIES LINK_FLAGS "\
    --embed-file data                   \
    -s USE_GLFW=3                       \
    -s USE_WEBGL2=1                     \
    -s FULL_ES3=1                       \
    -s USE_PTHREADS=1                   \
    -s ASSERTIONS=2                     \
    -s TOTAL_MEMORY=64Mb                \
    -s ALLOW_MEMORY_GROWTH=1            \
    -s WASM_MEM_MAX=512MB               \
")
target_include_directories(panopainter PRIVATE
    src
	../src
	../libs/glm
	../libs/tinyxml2
	../libs/yoga
	../libs/stb
	../libs/jpeg
	../libs/poly2tri/poly2tri
	../libs/base64
	../libs/sqlite3
	../libs/nanort
	../libs/hash-library
	../libs/fmt/include
	../libs/glad/include
	../libs/tinyfiledialogs
)
