diff --git a/.travis.yml b/.travis.yml index b595600e7..3310b881b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,12 +1,15 @@ before_install: - sudo apt-get install cmake python3 + - echo -e "#ifndef A_R_H_INC\n#define A_R_H_INC\n#define GitVersion ${TRAVIS_JOB_ID}\n#define GitBranch \"${TRAVIS_BRANCH}\"\n#endif // A_R_H_INC" > revision.h branches: only: - master env: - matrix: + global: + - PV=r8e PLATF=linux-x86_64 NDK_HOME=${TRAVIS_BUILD_DIR}/android-ndk-${PV} PATH=${PATH}:${NDK_HOME} + matrix: - LINUX=1 TRAVIS_NO_EXPORT=YES - LINUX=1 TRAVIS_NO_EXPORT=NO - LINUX=1 TRAVIS_STATIC_BUILD=ON @@ -15,6 +18,7 @@ env: - WINDOWS=1 TRAVIS_NO_EXPORT=NO - WINDOWS=1 TRAVIS_STATIC_BUILD=ON - WINDOWS=1 TRAVIS_STATIC_BUILD=OFF + - ANDROID=1 language: cpp @@ -24,8 +28,10 @@ compiler: install: - if [ $WINDOWS ]; then travis_retry sudo apt-get install -q -y gcc-mingw-w64-x86-64 g++-mingw-w64-x86-64 binutils-mingw-w64-x86-64; fi + - if [ $ANDROID ]; then wget -c http://dl.google.com/android/ndk/android-ndk-${PV}-${PLATF}.tar.bz2 && tar xf android-ndk-${PV}-${PLATF}.tar.bz2 ; fi script: + - if [ $ANDROID ]; then ant -v -Dmy.dir=${TRAVIS_BUILD_DIR} -f ${TRAVIS_BUILD_DIR}/port/jassimp/build.xml ndk-jni ; fi - cmake -G "Unix Makefiles" -DASSIMP_ENABLE_BOOST_WORKAROUND=YES -DASSIMP_NO_EXPORT=$TRAVIS_NO_EXPORT -STATIC_BUILD=$TRAVIS_STATIC_BUILD - make - sudo make install @@ -38,4 +44,3 @@ script: - echo "==========================================================" - echo "REGRESSION TEST FAILS (results/run_regression_suite_failures.csv)" - cat ../results/run_regression_suite_failures.csv - diff --git a/include/assimp/Compiler/pushpack1.h b/include/assimp/Compiler/pushpack1.h index 8bdb71293..e55202665 100644 --- a/include/assimp/Compiler/pushpack1.h +++ b/include/assimp/Compiler/pushpack1.h @@ -1,46 +1,46 @@ - - -// =============================================================================== -// May be included multiple times - sets structure packing to 1 -// for all supported compilers. #include reverts the changes. -// -// Currently this works on the following compilers: -// MSVC 7,8,9 -// GCC -// BORLAND (complains about 'pack state changed but not reverted', but works) -// Clang -// -// -// USAGE: -// -// struct StructToBePacked { -// } PACK_STRUCT; -// -// =============================================================================== - -#ifdef AI_PUSHPACK_IS_DEFINED -# error poppack1.h must be included after pushpack1.h -#endif - -#if defined(_MSC_VER) || defined(__BORLANDC__) || defined (__BCPLUSPLUS__) -# pragma pack(push,1) -# define PACK_STRUCT -#elif defined( __GNUC__ ) -# if defined(__clang__) -# define PACK_STRUCT __attribute__((__packed__)) -# else -# define PACK_STRUCT __attribute__((gcc_struct, __packed__)) -# endif -#else -# error Compiler not supported -#endif - -#if defined(_MSC_VER) - -// C4103: Packing was changed after the inclusion of the header, propably missing #pragma pop -# pragma warning (disable : 4103) -#endif - -#define AI_PUSHPACK_IS_DEFINED - - + + +// =============================================================================== +// May be included multiple times - sets structure packing to 1 +// for all supported compilers. #include reverts the changes. +// +// Currently this works on the following compilers: +// MSVC 7,8,9 +// GCC +// BORLAND (complains about 'pack state changed but not reverted', but works) +// Clang +// +// +// USAGE: +// +// struct StructToBePacked { +// } PACK_STRUCT; +// +// =============================================================================== + +#ifdef AI_PUSHPACK_IS_DEFINED +# error poppack1.h must be included after pushpack1.h +#endif + +#if defined(_MSC_VER) || defined(__BORLANDC__) || defined (__BCPLUSPLUS__) +# pragma pack(push,1) +# define PACK_STRUCT +#elif defined( __GNUC__ ) +# if !defined(HOST_MINGW) +# define PACK_STRUCT __attribute__((__packed__)) +# else +# define PACK_STRUCT __attribute__((gcc_struct, __packed__)) +# endif +#else +# error Compiler not supported +#endif + +#if defined(_MSC_VER) + +// C4103: Packing was changed after the inclusion of the header, propably missing #pragma pop +# pragma warning (disable : 4103) +#endif + +#define AI_PUSHPACK_IS_DEFINED + + diff --git a/port/jassimp/build.xml b/port/jassimp/build.xml index d81d1958a..1352e3ffa 100644 --- a/port/jassimp/build.xml +++ b/port/jassimp/build.xml @@ -1,45 +1,54 @@ - - - - - - - - - + + + + + + + + + - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/workspaces/Android-NDK/jni/Android.mk b/workspaces/Android-NDK/jni/Android.mk new file mode 100755 index 000000000..0d9f4981d --- /dev/null +++ b/workspaces/Android-NDK/jni/Android.mk @@ -0,0 +1,124 @@ +LOCAL_PATH := $(call my-dir)/../../../ + +include $(CLEAR_VARS) +LOCAL_MODULE := assimp_static +ASSIMP_SRC_DIR = code + +FILE_LIST := $(wildcard $(LOCAL_PATH)/$(ASSIMP_SRC_DIR)/*.cpp) +FILE_LIST += $(wildcard $(LOCAL_PATH)/contrib/openddlparser/code/*.cpp) +FILE_LIST += $(wildcard $(LOCAL_PATH)/contrib/unzip/*.c) +FILE_LIST += $(wildcard $(LOCAL_PATH)/contrib/poly2tri/poly2tri/*/*.cc) + +LOCAL_SRC_FILES := $(FILE_LIST:$(LOCAL_PATH)/%=%) + +LOCAL_SRC_FILES += contrib/clipper/clipper.cpp \ + contrib/ConvertUTF/ConvertUTF.c \ + contrib/irrXML/irrXML.cpp + +# enables -frtti and -fexceptions +LOCAL_CPP_FEATURES := exceptions +# identifier 'nullptr' will become a keyword in C++0x [-Wc++0x-compat] +# but next breaks blender and other importer +# LOCAL_CFLAGS += -std=c++11 + +# cant be disabled? rudamentary function? +# -DASSIMP_BUILD_NO_FLIPWINDING_PROCESS \ +# +DontBuildProcess = \ + -DASSIMP_BUILD_NO_FLIPUVS_PROCESS \ + -DASSIMP_BUILD_NO_MAKELEFTHANDED_PROCESS \ + -DASSIMP_BUILD_NO_CALCTANGENTS_PROCESS \ + -DASSIMP_BUILD_NO_DEBONE_PROCESS \ + -DASSIMP_BUILD_NO_FINDDEGENERATES_PROCESS \ + -DASSIMP_BUILD_NO_FINDINSTANCES_PROCESS \ + -DASSIMP_BUILD_NO_FINDINVALIDDATA_PROCESS \ + -DASSIMP_BUILD_NO_FIXINFACINGNORMALS_PROCESS \ + -DASSIMP_BUILD_NO_GENFACENORMALS_PROCESS \ + -DASSIMP_BUILD_NO_GENUVCOORDS_PROCESS \ + -DASSIMP_BUILD_NO_GENVERTEXNORMALS_PROCESS \ + -DASSIMP_BUILD_NO_IMPROVECACHELOCALITY_PROCESS \ + -DASSIMP_BUILD_NO_JOINVERTICES_PROCESS \ + -DASSIMP_BUILD_NO_LIMITBONEWEIGHTS_PROCESS \ + -DASSIMP_BUILD_NO_OPTIMIZEGRAPH_PROCESS \ + -DASSIMP_BUILD_NO_OPTIMIZEMESHES_PROCESS \ + -DASSIMP_BUILD_NO_PRETRANSFORMVERTICES_PROCESS \ + -DASSIMP_BUILD_NO_REMOVEVC_PROCESS \ + -DASSIMP_BUILD_NO_REMOVE_REDUNDANTMATERIALS_PROCESS \ + -DASSIMP_BUILD_NO_SORTBYPTYPE_PROCESS \ + -DASSIMP_BUILD_NO_SPLITBYBONECOUNT_PROCESS \ + -DASSIMP_BUILD_NO_SPLITLARGEMESHES_PROCESS \ + -DASSIMP_BUILD_NO_TRANSFORMTEXCOORDS_PROCESS \ + -DASSIMP_BUILD_NO_TRIANGULATE_PROCESS \ + -DASSIMP_BUILD_NO_VALIDATEDS_PROCESS + +DontBuildImporters = \ + -DASSIMP_BUILD_NO_X_IMPORTER \ + -DASSIMP_BUILD_NO_3DS_IMPORTER \ + -DASSIMP_BUILD_NO_MD3_IMPORTER \ + -DASSIMP_BUILD_NO_MDL_IMPORTER \ + -DASSIMP_BUILD_NO_MD2_IMPORTER \ + -DASSIMP_BUILD_NO_PLY_IMPORTER \ + -DASSIMP_BUILD_NO_ASE_IMPORTER \ + -DASSIMP_BUILD_NO_HMP_IMPORTER \ + -DASSIMP_BUILD_NO_SMD_IMPORTER \ + -DASSIMP_BUILD_NO_MDC_IMPORTER \ + -DASSIMP_BUILD_NO_MD5_IMPORTER \ + -DASSIMP_BUILD_NO_STL_IMPORTER \ + -DASSIMP_BUILD_NO_LWO_IMPORTER \ + -DASSIMP_BUILD_NO_DXF_IMPORTER \ + -DASSIMP_BUILD_NO_NFF_IMPORTER \ + -DASSIMP_BUILD_NO_RAW_IMPORTER \ + -DASSIMP_BUILD_NO_OFF_IMPORTER \ + -DASSIMP_BUILD_NO_AC_IMPORTER \ + -DASSIMP_BUILD_NO_BVH_IMPORTER \ + -DASSIMP_BUILD_NO_IRRMESH_IMPORTER \ + -DASSIMP_BUILD_NO_IRR_IMPORTER \ + -DASSIMP_BUILD_NO_Q3D_IMPORTER \ + -DASSIMP_BUILD_NO_B3D_IMPORTER \ + -DASSIMP_BUILD_NO_COLLADA_IMPORTER \ + -DASSIMP_BUILD_NO_TERRAGEN_IMPORTER \ + -DASSIMP_BUILD_NO_CSM_IMPORTER \ + -DASSIMP_BUILD_NO_3D_IMPORTER \ + -DASSIMP_BUILD_NO_LWS_IMPORTER \ + -DASSIMP_BUILD_NO_OGRE_IMPORTER \ + -DASSIMP_BUILD_NO_MS3D_IMPORTER \ + -DASSIMP_BUILD_NO_COB_IMPORTER \ + -DASSIMP_BUILD_NO_Q3BSP_IMPORTER \ + -DASSIMP_BUILD_NO_NDO_IMPORTER \ + -DASSIMP_BUILD_NO_IFC_IMPORTER \ + -DASSIMP_BUILD_NO_XGL_IMPORTER \ + -DASSIMP_BUILD_NO_FBX_IMPORTER \ + -DASSIMP_BUILD_NO_C4D_IMPORTER \ + -DASSIMP_BUILD_NO_OPENGEX_IMPORTER \ + -DASSIMP_BUILD_NO_ASSBIN_IMPORTER +# -DASSIMP_BUILD_NO_BLEND_IMPORTER \ +# -DASSIMP_BUILD_NO_GEO_IMPORTER +# -DASSIMP_BUILD_NO_OBJ_IMPORTER \ +# +DontBuildImporters := -DASSIMP_BUILD_NO_IFC_IMPORTER -DASSIMP_BUILD_NO_IRRMESH_IMPORTER -DASSIMP_BUILD_NO_IRR_IMPORTER -DASSIMP_BUILD_NO_C4D_IMPORTER + +ASSIMP_FLAGS_3_0 = -DASSIMP_BUILD_DLL_EXPORT -DASSIMP_BUILD_NO_OWN_ZLIB -DASSIMP_BUILD_BOOST_WORKAROUND -Dassimp_EXPORTS -fPIC -fvisibility=hidden -Wall +ASSIMP_FLAGS_3_1 = $(ASSIMP_FLAGS_3_0) # -DASSIMP_BUILD_BLENDER_DEBUG + +LOCAL_CFLAGS += $(ASSIMP_FLAGS_3_1) -DASSIMP_BUILD_NO_EXPORT -DOPENDDL_NO_USE_CPP11 $(DontBuildImporters) # $(DontBuildProcess) + +LOCAL_C_INCLUDES += $(LOCAL_PATH)/include $(LOCAL_PATH)/$(ASSIMP_SRC_DIR)/BoostWorkaround $(LOCAL_PATH)/contrib/openddlparser/include ./ +LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/include $(LOCAL_PATH)/$(ASSIMP_SRC_DIR)/BoostWorkaround + +include $(BUILD_STATIC_LIBRARY) + +include $(CLEAR_VARS) +LOCAL_MODULE := assimp + +LOCAL_CFLAGS += -UASSIMP_BUILD_DLL_EXPORT +LOCAL_WHOLE_STATIC_LIBRARIES = assimp_static + +LOCAL_LDLIBS := -lz + +LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/include $(LOCAL_PATH)/$(ASSIMP_SRC_DIR)/BoostWorkaround +include $(BUILD_SHARED_LIBRARY) + +-include $(LOCAL_PATH)/assimp_cmd.mk + +# let it on original place +include $(LOCAL_PATH)/port/jassimp/jassimp-native/Android.mk diff --git a/workspaces/Android-NDK/jni/Application.mk b/workspaces/Android-NDK/jni/Application.mk new file mode 100755 index 000000000..3d264db1b --- /dev/null +++ b/workspaces/Android-NDK/jni/Application.mk @@ -0,0 +1,8 @@ +ifeq ($(CC),clang) + NDK_TOOLCHAIN_VERSION := $(CC) + $(info "Use llvm Compiler") +endif + +APP_ABI := armeabi-v7a + +APP_STL := stlport_static