# Sets the minimum version of CMake required to build your native library.
# This ensures that a certain set of CMake features is available to
# your build.

cmake_minimum_required(VERSION 3.4.1)

# build native_app_glue as a static lib
add_library(
	app-glue STATIC
	${ANDROID_NDK}/sources/android/native_app_glue/android_native_app_glue.c
)

# Specifies a library name, specifies whether the library is STATIC or
# SHARED, and provides relative paths to the source code. You can
# define multiple libraries by adding multiple add.library() commands,
# and CMake builds them for you. When you build your app, Gradle
# automatically packages shared libraries with your APK.

# now build app's shared lib
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++14")

add_library(
	native-lib SHARED
	../libs/yoga/yoga/YGNodeList.c
	../libs/yoga/yoga/Yoga.c
	../libs/tinyxml2/tinyxml2.cpp
	src/main/cpp/main.cpp 
	../engine/pch.cpp
	../engine/util.cpp
	../engine/rtt.cpp
	../engine/bezier.cpp
	../engine/asset.cpp
	../engine/image.cpp
	../engine/texture.cpp
	../engine/font.cpp
	../engine/shader.cpp
	../engine/shape.cpp
	../engine/app.cpp
	../engine/app_events.cpp
	../engine/app_layout.cpp
	../engine/app_shaders.cpp
	../engine/brush.cpp
	../engine/canvas.cpp
	../engine/canvas_modes.cpp
	../engine/log.cpp
	../engine/action.cpp
	../engine/layout.cpp
	../engine/node.cpp
	../engine/node_border.cpp
	../engine/node_button.cpp
	../engine/node_button_custom.cpp
	../engine/node_canvas.cpp
	../engine/node_checkbox.cpp
	../engine/node_color_quad.cpp
	../engine/node_dialog_open.cpp
	../engine/node_icon.cpp
	../engine/node_image.cpp
	../engine/node_image_texture.cpp
	../engine/node_message_box.cpp
	../engine/node_panel_brush.cpp
	../engine/node_panel_color.cpp
	../engine/node_panel_layer.cpp
	../engine/node_panel_stroke.cpp
	../engine/node_popup_menu.cpp
	../engine/node_settings.cpp
	../engine/node_slider.cpp
	../engine/node_stroke_preview.cpp
	../engine/node_text.cpp
	../engine/node_text_input.cpp
	../engine/node_viewport.cpp
	../engine/node_scroll.cpp
)

target_include_directories(native-lib PRIVATE
	${ANDROID_NDK}/sources/android/native_app_glue
	../engine
	../libs/glm
	../libs/tinyxml2
	../libs/yoga
	../libs/stb
	../libs/curl-android-ios/prebuilt-with-ssl/android/include
)

# add lib dependencies
target_link_libraries(
	native-lib
	android
	app-glue
	${CMAKE_SOURCE_DIR}/../libs/curl-android-ios/prebuilt-with-ssl/android/armeabi-v7a/libcurl.a
	EGL
	GLESv3
	log
	z
)
