PROJECT_NAME = uitoolkit

# VERSION_MAJOR, VERSION_MINOR, and VERSION_TWEAK are available as preprocessor macros for all source files in the project
VERSION_MAJOR = 0
VERSION_MINOR = 0
VERSION_TWEAK = 0
PROJECT_VERSION = ${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_TWEAK}

LIBRARY_TARGETS = library
EXECUTABLE_TARGETS = unittest
APPLICATION_TARGETS = testharness

# TARGET_NAME_${target} required for each target of any type; HUMAN_READABLE_TARGET_NAME_${target} required for each application target. Default values for TARGET_NAME_* shown below.
#TARGET_NAME_library = libstem_${PROJECT_NAME}
#TARGET_NAME_unittest = ${PROJECT_NAME}_unittest
#TARGET_NAME_testharness = ${PROJECT_NAME}_testharness
HUMAN_READABLE_TARGET_NAME_testharness = UIToolkit

# Patterns: PLATFORMS, PLATFORMS_${target}
PLATFORMS = macosx iphonesimulator iphoneos linux windows android

# Patterns: CCFLAGS, CCFLAGS_${target}, CCFLAGS_${configuration}, CCFLAGS_${platform}, CCFLAGS_${target}_${configuration}, CCFLAGS_${target}_${platform}, CCFLAGS_${configuration}_${platform}, CCFLAGS_${target}_${configuration}_${platform}
CCFLAGS = 
CCFLAGS_testharness = -Wno-unused-result

# Patterns: LINKFLAGS, LINKFLAGS_${target}, LINKFLAGS_${configuration}, LINKFLAGS_${platform}, LINKFLAGS_${target}_${configuration}, LINKFLAGS_${target}_${platform}, LINKFLAGS_${configuration}_${platform}
LINKFLAGS = 
LINKFLAGS_testharness_android = -lz

# PROJECT_LIBRARY_DEPENDENCIES_* refers to entries in LIBRARY_TARGETS to be linked when building the specified target
# Patterns: PROJECT_LIBRARY_DEPENDENCIES_${target}, PROJECT_LIBRARY_DEPENDENCIES_${target}_${platform}
PROJECT_LIBRARY_DEPENDENCIES_unittest = library
PROJECT_LIBRARY_DEPENDENCIES_testharness = library

# STEM_LIBRARY_DEPENDENCIES is specified as ${PROJECT_NAME}/${PROJECT_VERSION} for each stem library to be linked when building
# Patterns: STEM_LIBRARY_DEPENDENCIES, STEM_LIBRARY_DEPENDENCIES_${target}, STEM_LIBRARY_DEPENDENCIES_${platform}, STEM_LIBRARY_DEPENDENCIES_${target}_${platform}
STEM_LIBRARY_DEPENDENCIES = \
	dynamictypes/latest \
	gamemath/latest \
	font/latest \
	imageio/latest \
	inputcontroller/latest \
	renderer/latest \
	shell/latest \
	stemobject/latest \
	utilities/latest
STEM_LIBRARY_DEPENDENCIES_unittest = \
	stubshell/latest \
	unittest/latest
STEM_LIBRARY_DEPENDENCIES_testharness = \
	3dmodelio/latest \
	jsonserialization/latest \
	resourcemanager/latest \
	shadercollection/latest \
	shell/latest
STEM_LIBRARY_DEPENDENCIES_testharness_macosx = nsopenglshell/latest
STEM_LIBRARY_DEPENDENCIES_testharness_windows = wglshell/latest
STEM_LIBRARY_DEPENDENCIES_testharness_linux = glxshell/latest
STEM_LIBRARY_DEPENDENCIES_testharness_iphonesimulator = eaglshell/latest
STEM_LIBRARY_DEPENDENCIES_testharness_iphoneos = eaglshell/latest
STEM_LIBRARY_DEPENDENCIES_testharness_android = eglshell/latest

# THIRDPARTY_LIBRARY_DEPENDENCIES is specified as ${PROJECT_NAME}/${PROJECT_VERSION} for each thirdparty library to be linked when building
# Patterns: THIRDPARTY_LIBRARY_DEPENDENCIES, THIRDPARTY_LIBRARY_DEPENDENCIES_${target}, THIRDPARTY_LIBRARY_DEPENDENCIES_${platform}, THIRDPARTY_LIBRARY_DEPENDENCIES_${target}_${platform}
THIRDPARTY_LIBRARY_DEPENDENCIES = 

# Additional build prerequisites per target
# Patterns: PREREQS, PREREQS_${target}
PREREQS = 

SOURCES_library = \
	source/${PROJECT_NAME}/UIAppearance.c \
	source/${PROJECT_NAME}/UIButton.c \
	source/${PROJECT_NAME}/UICheckbox.c \
	source/${PROJECT_NAME}/UIContainer.c \
	source/${PROJECT_NAME}/UIContinuousSlider.c \
	source/${PROJECT_NAME}/UIDrawingInterface.c \
	source/${PROJECT_NAME}/UIDrawingInterface2DMultitexture.c \
	source/${PROJECT_NAME}/UIDrawingInterface2DTexture.c \
	source/${PROJECT_NAME}/UIEditText.c \
	source/${PROJECT_NAME}/UIElement.c \
	source/${PROJECT_NAME}/UIGraphicalButton.c \
	source/${PROJECT_NAME}/UIHitTestResultIO.c \
	source/${PROJECT_NAME}/UIKeyShortcut.c \
	source/${PROJECT_NAME}/UILabel.c \
	source/${PROJECT_NAME}/UIListViewBase.c \
	source/${PROJECT_NAME}/UIMenuBar.c \
	source/${PROJECT_NAME}/UIModalConfirmationDialog.c \
	source/${PROJECT_NAME}/UIModalDialog.c \
	source/${PROJECT_NAME}/UIPopUpMenu.c \
	source/${PROJECT_NAME}/UIPopUpView.c \
	source/${PROJECT_NAME}/UIRadioButton.c \
	source/${PROJECT_NAME}/UIRadioGroup.c \
	source/${PROJECT_NAME}/UIScrollContainer.c \
	source/${PROJECT_NAME}/UISlider.c \
	source/${PROJECT_NAME}/UIStepper.c \
	source/${PROJECT_NAME}/UITextLayout.c \
	source/${PROJECT_NAME}/UITextListView.c \
	source/${PROJECT_NAME}/UIToolkitAppearance.c \
	source/${PROJECT_NAME}/UIToolkitContext.c \
	source/${PROJECT_NAME}/UIToolkitCursor.c \
	source/${PROJECT_NAME}/UIToolkitDrawing.c \
	source/${PROJECT_NAME}/UITooltipRoot.c \
	source/${PROJECT_NAME}/UITooltipView.c \
	source/${PROJECT_NAME}/UITypeface.c \
	source/${PROJECT_NAME}/UITypeface_BitmapFont.c \
	source/${PROJECT_NAME}/UITypeface_BitmapFont2.c \
	source/${PROJECT_NAME}/UIWindowRoot.c \
	source/${PROJECT_NAME}/UIWindowView.c

# Executable targets named "unittest" should usually specify only SOURCES_unittest_suites, which must contain only test suite files.
# If files other than test suites are required, specify SOURCES_unittest.
SOURCES_unittest_suites = \
	source/unittest/UIKeyShortcutTest.c

SOURCES_testharness = \
	source/testharness/TestHarness_main.c

# Public-facing include files to be distributed with the library, if any
INCLUDES = \
	source/${PROJECT_NAME}/UIAppearance.h \
	source/${PROJECT_NAME}/UIButton.h \
	source/${PROJECT_NAME}/UICheckbox.h \
	source/${PROJECT_NAME}/UIContainer.h \
	source/${PROJECT_NAME}/UIContinuousSlider.h \
	source/${PROJECT_NAME}/UIDrawingInterface.h \
	source/${PROJECT_NAME}/UIDrawingInterface2DMultitexture.h \
	source/${PROJECT_NAME}/UIDrawingInterface2DTexture.h \
	source/${PROJECT_NAME}/UIEditText.h \
	source/${PROJECT_NAME}/UIElement.h \
	source/${PROJECT_NAME}/UIGraphicalButton.h \
	source/${PROJECT_NAME}/UIHitTestResultIO.h \
	source/${PROJECT_NAME}/UIKeyShortcut.h \
	source/${PROJECT_NAME}/UILabel.h \
	source/${PROJECT_NAME}/UIListViewBase.h \
	source/${PROJECT_NAME}/UIMenuBar.h \
	source/${PROJECT_NAME}/UIModalConfirmationDialog.h \
	source/${PROJECT_NAME}/UIModalDialog.h \
	source/${PROJECT_NAME}/UIPopUpMenu.h \
	source/${PROJECT_NAME}/UIPopUpView.h \
	source/${PROJECT_NAME}/UIRadioButton.h \
	source/${PROJECT_NAME}/UIRadioGroup.h \
	source/${PROJECT_NAME}/UIScrollContainer.h \
	source/${PROJECT_NAME}/UISlider.h \
	source/${PROJECT_NAME}/UIStepper.h \
	source/${PROJECT_NAME}/UITextLayout.h \
	source/${PROJECT_NAME}/UITextListView.h \
	source/${PROJECT_NAME}/UIToolkitAppearance.h \
	source/${PROJECT_NAME}/UIToolkitAppearance_entries.h \
	source/${PROJECT_NAME}/UIToolkitContext.h \
	source/${PROJECT_NAME}/UIToolkitCursor.h \
	source/${PROJECT_NAME}/UIToolkitDrawing.h \
	source/${PROJECT_NAME}/UITooltipRoot.h \
	source/${PROJECT_NAME}/UITooltipView.h \
	source/${PROJECT_NAME}/UITypeface.h \
	source/${PROJECT_NAME}/UITypeface_BitmapFont.h \
	source/${PROJECT_NAME}/UITypeface_BitmapFont2.h \
	source/${PROJECT_NAME}/UITypes.h \
	source/${PROJECT_NAME}/UIWindowRoot.h \
	source/${PROJECT_NAME}/UIWindowView.h

# Patterns: RESOURCES, RESOURCES_${target}, RESOURCES_${platform}, RESOURCES_${target}_${platform}
RESOURCES_testharness = \
	build/generated/15pt.bitmapfont \
	build/generated/testappearance_atlas.png \
	build/generated/testappearance.atlas

EMBEDFILES_library = \
	resources/cursors/resize_topleft_1x.png \
	resources/cursors/resize_topleft_2x.png \
	resources/cursors/resize_top_1x.png \
	resources/cursors/resize_top_2x.png \
	resources/cursors/resize_topright_1x.png \
	resources/cursors/resize_topright_2x.png \
	resources/cursors/resize_left_1x.png \
	resources/cursors/resize_left_2x.png \
	resources/cursors/resize_right_1x.png \
	resources/cursors/resize_right_2x.png \
	resources/cursors/resize_bottomleft_1x.png \
	resources/cursors/resize_bottomleft_2x.png \
	resources/cursors/resize_bottom_1x.png \
	resources/cursors/resize_bottom_2x.png \
	resources/cursors/resize_bottomright_1x.png \
	resources/cursors/resize_bottomright_2x.png

STEM_JAR_DEPENDENCIES_testharness = \
	eglshell/latest

GENERATE_ANDROID_PACKAGE_NAME_testharness = com.ludobloom.${PROJECT_NAME}.testharness
GENERATE_ANDROID_CLASS_NAME_testharness = ${PROJECT_NAME}TestHarnessActivity
USE_DEFAULT_ICONS_testharness = true

# Pattern: PLIST_FILE_${target}_${platform} (required for application targets on macosx, iphoneos, and iphonesimulator)
PLIST_FILE_testharness_macosx = resources/Info_testharness_macosx.plist
PLIST_FILE_testharness_iphonesimulator = resources/Info_testharness_iphone.plist
PLIST_FILE_testharness_iphoneos = resources/Info_testharness_iphone.plist

INSTALLED_TARGETS = library testharness

# Postamble to invoke stemconfig makefile. Do not modify.
UNAME = ${shell uname}
ifeq (${UNAME},Linux)
STEM_SHARED_DIR ?= /usr/local/stem
else ifeq (${UNAME},Darwin)
STEM_SHARED_DIR ?= /usr/local/stem
else
STEM_SHARED_DIR ?= C:/stem
endif
include ${STEM_SHARED_DIR}/Makefile.global

build/generated/15ptfont.atlas build/generated/15pt.bitmapfont: resources/atlas_data/15ptfont_makefont_config.json resources/atlas_data/15ptfont_info.json resources/atlas_data/15ptfont.png ${MAKEFONT} | build/generated
	${MAKEFONT} -c $<

build/generated/testappearance_atlas.png build/generated/testappearance.atlas: resources/atlas_data/texturepacker_config.json build/generated/15ptfont.atlas ${TEXTUREPACKER} ${shell ${TEXTUREPACKER} --prereqs -c resources/atlas_data/texturepacker_config.json}
	${TEXTUREPACKER} -c $<