
# Sets the minimum version of CMake required to build the native
# library. You should either keep the default value or only pass a
# value of 3.4.0 or lower.

cmake_minimum_required(VERSION 3.4.1)

# Creates and names a library, sets it as either STATIC
# or SHARED, and provides the relative paths to its source code.
# You can define multiple libraries, and CMake builds it for you.
# Gradle automatically packages shared libraries with your APK.



#ENGINE_PATH = $(SalmonEnginePathCygwin)

#BOOST_PATH = $(LibsPathCygwin)/boost_1_52_0

#OGG_PATH = $(LibsPathCygwin)/libogg-1.3.0

#VORBIS_PATH = $(LibsPathCygwin)/libvorbis-1.3.2

#SQUIRREL_PATH = $(LibsPathCygwin)/sqplus

#LIBPNG_PATH = $(LibsPathCygwin)/libpng_1.4.1_android

#LIBJPEG_PATH = $(LibsPathCygwin)/jpeg-9

#ZIP_PATH = $(LibsPathCygwin)/julienr-libzip-android/jni

set(BOOST_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../../boost_1_63_0)

set(BOOST_GIL_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../../libs/boost-gil-extension)

set(ZIP_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../../libs/julienr-libzip-android/jni)

set(LIBPNG_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../../libs/libpng_1.4.1_android)

set(LIBJPEG_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../libs/jpeg-9")

set(SQUIRREL_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../../libs/sqplus)

set(OGG_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../../libs/libogg-1.3.0)

set(VORBIS_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../../libs/libvorbis-1.3.2)


#include_directories(ZIP_PATH)

add_library(zip
	${ZIP_PATH}/zip_add.c
	${ZIP_PATH}/zip_add_dir.c
	${ZIP_PATH}/zip_close.c
	${ZIP_PATH}/zip_delete.c
	${ZIP_PATH}/zip_dirent.c
	${ZIP_PATH}/zip_entry_free.c
	${ZIP_PATH}/zip_entry_new.c
	${ZIP_PATH}/zip_err_str.c
	${ZIP_PATH}/zip_error.c
	${ZIP_PATH}/zip_error_clear.c
	${ZIP_PATH}/zip_error_get.c
	${ZIP_PATH}/zip_error_get_sys_type.c
	${ZIP_PATH}/zip_error_strerror.c
	${ZIP_PATH}/zip_error_to_str.c
	${ZIP_PATH}/zip_fclose.c
	${ZIP_PATH}/zip_file_error_clear.c
	${ZIP_PATH}/zip_file_error_get.c
	${ZIP_PATH}/zip_file_get_offset.c
	${ZIP_PATH}/zip_file_strerror.c
	${ZIP_PATH}/zip_filerange_crc.c
	${ZIP_PATH}/zip_fopen.c
	${ZIP_PATH}/zip_fopen_index.c
	${ZIP_PATH}/zip_fread.c
	${ZIP_PATH}/zip_free.c
	${ZIP_PATH}/zip_get_archive_comment.c
	${ZIP_PATH}/zip_get_archive_flag.c
	${ZIP_PATH}/zip_get_file_comment.c
	${ZIP_PATH}/zip_get_num_files.c
	${ZIP_PATH}/zip_get_name.c
	${ZIP_PATH}/zip_memdup.c
	${ZIP_PATH}/zip_name_locate.c
	${ZIP_PATH}/zip_new.c
	${ZIP_PATH}/zip_open.c
	${ZIP_PATH}/zip_rename.c
	${ZIP_PATH}/zip_replace.c
	${ZIP_PATH}/zip_set_archive_comment.c
	${ZIP_PATH}/zip_set_archive_flag.c
	${ZIP_PATH}/zip_set_file_comment.c
	${ZIP_PATH}/zip_source_buffer.c
	${ZIP_PATH}/zip_source_file.c
	${ZIP_PATH}/zip_source_filep.c
	${ZIP_PATH}/zip_source_free.c
	${ZIP_PATH}/zip_source_function.c
	${ZIP_PATH}/zip_source_zip.c
	${ZIP_PATH}/zip_set_name.c
	${ZIP_PATH}/zip_stat.c
	${ZIP_PATH}/zip_stat_index.c
	${ZIP_PATH}/zip_stat_init.c
	${ZIP_PATH}/zip_strerror.c
	${ZIP_PATH}/zip_unchange.c
	${ZIP_PATH}/zip_unchange_all.c
	${ZIP_PATH}/zip_unchange_archive.c
	${ZIP_PATH}/zip_unchange_data.c
	)
	
#include_directories(LIBPNG_PATH)

add_library(png
	${LIBPNG_PATH}/png.c
	${LIBPNG_PATH}/pngerror.c
	${LIBPNG_PATH}/pngget.c
	${LIBPNG_PATH}/pngmem.c
	${LIBPNG_PATH}/pngpread.c
	${LIBPNG_PATH}/pngread.c
	${LIBPNG_PATH}/pngrio.c
	${LIBPNG_PATH}/pngrtran.c
	${LIBPNG_PATH}/pngrutil.c
	${LIBPNG_PATH}/pngset.c
	${LIBPNG_PATH}/pngtrans.c
	${LIBPNG_PATH}/pngwio.c
	${LIBPNG_PATH}/pngwrite.c
	${LIBPNG_PATH}/pngwtran.c
	${LIBPNG_PATH}/pngwutil.c 
	)

include_directories(${LIBJPEG_PATH}/vc10)

add_library(jpeg
	${LIBJPEG_PATH}/jaricom.c
	${LIBJPEG_PATH}/jcapimin.c
	${LIBJPEG_PATH}/jcapistd.c
	${LIBJPEG_PATH}/jcarith.c
	${LIBJPEG_PATH}/jccoefct.c
	${LIBJPEG_PATH}/jccolor.c
	${LIBJPEG_PATH}/jcdctmgr.c
	${LIBJPEG_PATH}/jchuff.c
	${LIBJPEG_PATH}/jcinit.c
	${LIBJPEG_PATH}/jcmainct.c
	${LIBJPEG_PATH}/jcmarker.c
	${LIBJPEG_PATH}/jcmaster.c
	${LIBJPEG_PATH}/jcomapi.c
	${LIBJPEG_PATH}/jcparam.c
	${LIBJPEG_PATH}/jcprepct.c
	${LIBJPEG_PATH}/jcsample.c
	${LIBJPEG_PATH}/jctrans.c
	${LIBJPEG_PATH}/jdapimin.c
	${LIBJPEG_PATH}/jdapistd.c
	${LIBJPEG_PATH}/jdarith.c
	${LIBJPEG_PATH}/jdatadst.c
	${LIBJPEG_PATH}/jdatasrc.c
	${LIBJPEG_PATH}/jdcoefct.c
	${LIBJPEG_PATH}/jdcolor.c
	${LIBJPEG_PATH}/jddctmgr.c
	${LIBJPEG_PATH}/jdhuff.c
	${LIBJPEG_PATH}/jdinput.c
	${LIBJPEG_PATH}/jdmainct.c
	${LIBJPEG_PATH}/jdmarker.c
	${LIBJPEG_PATH}/jdmaster.c
	${LIBJPEG_PATH}/jdmerge.c
	${LIBJPEG_PATH}/jdpostct.c
	${LIBJPEG_PATH}/jdsample.c
	${LIBJPEG_PATH}/jdtrans.c
	${LIBJPEG_PATH}/jerror.c
	${LIBJPEG_PATH}/jfdctflt.c
	${LIBJPEG_PATH}/jfdctfst.c
	${LIBJPEG_PATH}/jfdctint.c
	${LIBJPEG_PATH}/jidctflt.c
	${LIBJPEG_PATH}/jidctfst.c
	${LIBJPEG_PATH}/jidctint.c
	${LIBJPEG_PATH}/jmemmgr.c
	${LIBJPEG_PATH}/jmemnobs.c
	${LIBJPEG_PATH}/jquant1.c
	${LIBJPEG_PATH}/jquant2.c
	${LIBJPEG_PATH}/jutils.c
	)



#LOCAL_PATH       := $(VORBIS_PATH)/lib
#LOCAL_C_INCLUDES := $(VORBIS_PATH)/include
#LOCAL_C_INCLUDES += $(VORBIS_PATH)/include/vorbis
#LOCAL_C_INCLUDES += $(VORBIS_PATH)/lib/src
#LOCAL_C_INCLUDES += $(VORBIS_PATH)/lib/books
#LOCAL_C_INCLUDES += $(VORBIS_PATH)/lib/modes
#LOCAL_C_INCLUDES += $(OGG_PATH)/include
#LOCAL_C_INCLUDES += $(OGG_PATH)/include/ogg

include_directories(${OGG_PATH}/include)
include_directories(${VORBIS_PATH}/include)

add_library(ogg
	${OGG_PATH}/src/framing.c 
	${OGG_PATH}/src/bitwise.c
	)

add_library(vorbis
	${VORBIS_PATH}/lib/mdct.c
	${VORBIS_PATH}/lib/smallft.c
	${VORBIS_PATH}/lib/block.c
	${VORBIS_PATH}/lib/envelope.c
	${VORBIS_PATH}/lib/window.c
	${VORBIS_PATH}/lib/lsp.c
	${VORBIS_PATH}/lib/lpc.c
	${VORBIS_PATH}/lib/analysis.c
	${VORBIS_PATH}/lib/synthesis.c
	${VORBIS_PATH}/lib/psy.c
	${VORBIS_PATH}/lib/info.c
	${VORBIS_PATH}/lib/floor1.c
	${VORBIS_PATH}/lib/floor0.c
	${VORBIS_PATH}/lib/res0.c
	${VORBIS_PATH}/lib/mapping0.c
	${VORBIS_PATH}/lib/registry.c
	${VORBIS_PATH}/lib/codebook.c
	${VORBIS_PATH}/lib/sharedbook.c
	${VORBIS_PATH}/lib/lookup.c
	${VORBIS_PATH}/lib/bitrate.c
	${VORBIS_PATH}/lib/vorbisfile.c
	)


include_directories(${BOOST_PATH})

add_library(boost
	${BOOST_PATH}/libs/thread/src/pthread/thread.cpp


#thread
${BOOST_PATH}/libs/thread/src/pthread/thread.cpp
${BOOST_PATH}/libs/thread/src/pthread/once.cpp

#signals
${BOOST_PATH}/libs/signals/src/connection.cpp
${BOOST_PATH}/libs/signals/src/named_slot_map.cpp
${BOOST_PATH}/libs/signals/src/signal_base.cpp
${BOOST_PATH}/libs/signals/src/slot.cpp
${BOOST_PATH}/libs/signals/src/trackable.cpp

#system
${BOOST_PATH}/libs/system/src/error_code.cpp

#regex
${BOOST_PATH}/libs/regex/src/c_regex_traits.cpp
${BOOST_PATH}/libs/regex/src/cpp_regex_traits.cpp
${BOOST_PATH}/libs/regex/src/cregex.cpp
${BOOST_PATH}/libs/regex/src/fileiter.cpp
${BOOST_PATH}/libs/regex/src/icu.cpp
${BOOST_PATH}/libs/regex/src/instances.cpp
${BOOST_PATH}/libs/regex/src/posix_api.cpp
${BOOST_PATH}/libs/regex/src/regex.cpp
${BOOST_PATH}/libs/regex/src/regex_debug.cpp
${BOOST_PATH}/libs/regex/src/regex_raw_buffer.cpp
${BOOST_PATH}/libs/regex/src/regex_traits_defaults.cpp
${BOOST_PATH}/libs/regex/src/static_mutex.cpp
${BOOST_PATH}/libs/regex/src/usinstances.cpp
${BOOST_PATH}/libs/regex/src/w32_regex_traits.cpp
${BOOST_PATH}/libs/regex/src/wc_regex_traits.cpp
${BOOST_PATH}/libs/regex/src/wide_posix_api.cpp
${BOOST_PATH}/libs/regex/src/winstances.cpp

#date_time
${BOOST_PATH}/libs/date_time/src/gregorian/greg_month.cpp
${BOOST_PATH}/libs/date_time/src/gregorian/greg_weekday.cpp
${BOOST_PATH}/libs/date_time/src/gregorian/date_generators.cpp
)



find_library( # Sets the name of the path variable.
              z-lib

              # Specifies the name of the NDK library that
              # you want CMake to locate.
              z )
			  
find_library( # Sets the name of the path variable.
              GLESv2-lib

              # Specifies the name of the NDK library that
              # you want CMake to locate.
              GLESv2 )
find_library( # Sets the name of the path variable.
              log-lib

              # Specifies the name of the NDK library that
              # you want CMake to locate.
              log )
			  
			  
			  

include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../)


include_directories(${BOOST_PATH})
include_directories(${LIBPNG_PATH})
include_directories(${LIBJPEG_PATH})
include_directories(${ZIP_PATH})

include_directories(${BOOST_GIL_PATH})



add_definitions(-DTARGET_ANDROID)


add_library( # Sets the name of the library.
             engine

             # Sets the library as a shared library.
             SHARED

             # Provides a relative path to your source file(s).
             # Associated headers in the same location as their source
             # file are automatically included.

             #testcpp.cpp
             ${CMAKE_CURRENT_SOURCE_DIR}/../../src/Utils/DataTypes/DataTypes.cpp
             ${CMAKE_CURRENT_SOURCE_DIR}/../../src/Utils/DataTypes/NewDataTypes.cpp
             ${CMAKE_CURRENT_SOURCE_DIR}/../../src/Utils/FileUtils/FileUtils.cpp
             ${CMAKE_CURRENT_SOURCE_DIR}/../../src/Utils/JniApi/JniApi.cpp
             ${CMAKE_CURRENT_SOURCE_DIR}/../../src/Utils/JniApi/JniApplication.cpp
             ${CMAKE_CURRENT_SOURCE_DIR}/../../src/Utils/Console/Console.cpp
             ${CMAKE_CURRENT_SOURCE_DIR}/../../src/Utils/SerializeInterface/SerializeInterface.cpp
             ${CMAKE_CURRENT_SOURCE_DIR}/../../src/Utils/Network/Network.cpp
             ${CMAKE_CURRENT_SOURCE_DIR}/../../src/Utils/PngHelper.cpp
             ${CMAKE_CURRENT_SOURCE_DIR}/../../src/Utils/JpegHelper.cpp
             ${CMAKE_CURRENT_SOURCE_DIR}/../../src/Utils/TgaLoader.cpp
             ${CMAKE_CURRENT_SOURCE_DIR}/../../src/Utils/SimpleTimer.cpp
             ${CMAKE_CURRENT_SOURCE_DIR}/../../src/Utils/ThreadUtils.cpp
             ${CMAKE_CURRENT_SOURCE_DIR}/../../src/TextureManager/SalmonTexture.cpp
             ${CMAKE_CURRENT_SOURCE_DIR}/../../src/ShaderManager/ShaderManager.cpp
             ${CMAKE_CURRENT_SOURCE_DIR}/../../src/FrameManager/FrameManager.cpp
             ${CMAKE_CURRENT_SOURCE_DIR}/../../src/LightManager/LightManager.cpp
             ${CMAKE_CURRENT_SOURCE_DIR}/../../src/SoundManager/SoundManagerAndroid.cpp
             ${CMAKE_CURRENT_SOURCE_DIR}/../../src/SoundManager/SoundManagerDataTypes.cpp
             ${CMAKE_CURRENT_SOURCE_DIR}/../../src/FontManager/FontManager.cpp
             ${CMAKE_CURRENT_SOURCE_DIR}/../../src/ScriptManager/ScriptManager.cpp
             ${CMAKE_CURRENT_SOURCE_DIR}/../../src/SmartValueManager/SmartValueManager.cpp
             ${CMAKE_CURRENT_SOURCE_DIR}/../../src/GUIManager/GUIManager.cpp
             ${CMAKE_CURRENT_SOURCE_DIR}/../../src/GUIManager/ButtonWidget.cpp
             ${CMAKE_CURRENT_SOURCE_DIR}/../../src/GUIManager/WidgetXmlParsers.cpp
             ${CMAKE_CURRENT_SOURCE_DIR}/../../src/HalibutAnimation/HalibutAnimation.cpp
             ${CMAKE_CURRENT_SOURCE_DIR}/../../src/ModelManager/ModelManager.cpp
             ${CMAKE_CURRENT_SOURCE_DIR}/../../src/ModelManager/NewModelManager.cpp
             ${CMAKE_CURRENT_SOURCE_DIR}/../../src/SimpleLand/SimpleLand.cpp
             ${CMAKE_CURRENT_SOURCE_DIR}/../../src/PhysicsManager/PhysicsManager.cpp
             ${CMAKE_CURRENT_SOURCE_DIR}/../../src/Render/RenderMisc.cpp
             ${CMAKE_CURRENT_SOURCE_DIR}/../../src/Render/RenderParams.cpp

             ${CMAKE_CURRENT_SOURCE_DIR}/../../src/Render/SalmonRender/BackgroundCubemap.cpp
             ${CMAKE_CURRENT_SOURCE_DIR}/../../src/Render/SalmonRender/SalmonRenderInterface.cpp
             ${CMAKE_CURRENT_SOURCE_DIR}/../../src/Render/SalmonRender/SalmonRenderGLES20.cpp
             ${CMAKE_CURRENT_SOURCE_DIR}/../../src/Render/SalmonRender/SalmonRenderAndroid.cpp
             ${CMAKE_CURRENT_SOURCE_DIR}/../../src/Render/SalmonRender/Cameras.cpp

             ${CMAKE_CURRENT_SOURCE_DIR}/../../src/Animation/SalmonAnimation.cpp
             ${CMAKE_CURRENT_SOURCE_DIR}/../../src/SalmonEngineAndroid.cpp
             ${CMAKE_CURRENT_SOURCE_DIR}/../../src/SalmonEngineInterface.cpp
             )


target_link_libraries(engine
${z-lib}
${log-lib}
${GLESv2-lib}
png
zip
boost
jpeg
ogg
vorbis
)
