boost ビルド用設定
ソースの配置
「ColladaDom」プロジェクトの[jni/external-libs」ディレクトリに「boost」ディレクトリを作成する。「boost_1_50_0.tar.bz2」ファイルを、任意のディレクトリに解凍する。
解凍したファイルの「boost」および「libs」ディレクトリを、「ColladaDom」プロジェクトの「jni/external-libs/boost」ディレクトリの下にコピー
ソースのパッチ
【libs/filesystem/src/operations.cpp】ファイル
76~83行目および88行目をコメントアウト85行目に「# include <sys/vfs.h>」を追加
# ifdef BOOST_POSIX_API const fs::path dot_path("."); const fs::path dot_dot_path(".."); # include <sys/types.h> # include <sys/stat.h> //# if !defined(__APPLE__) && !defined(__OpenBSD__) //# include <sys/statvfs.h> //# define BOOST_STATVFS statvfs //# define BOOST_STATVFS_F_FRSIZE vfs.f_frsize //# else //# ifdef __OpenBSD__ //# include <sys/param.h> //# endif # include <sys/mount.h> # include <sys/vfs.h> # define BOOST_STATVFS statfs # define BOOST_STATVFS_F_FRSIZE static_cast<boost::uintmax_t>(vfs.f_bsize) //# endif # include <dirent.h> # include <unistd.h> # include <fcntl.h> # include <utime.h> # include "limits.h"
Makefile の作成
「jni/external-libs/boost」ディレクトリに「Application.mk」および「Android.mk」ファイルを作成する。LF改行にしておくこと。「Application.mk」ファイル
APP_MODULES := boost_filesystem boost_system APP_ABI := armeabi-v7a APP_PLATFORM := android-9
「Android.mk」ファイル
LOCAL_PATH := $(call my-dir) # # build boost_filesystem.a # include $(CLEAR_VARS) LOCAL_MODULE := boost_filesystem LOCAL_ARM_MODE := arm LOCAL_EXPORT_INCLUDES := $(LOCAL_PATH)/boost LOCAL_CPPFLAGS += -fexceptions LOCAL_SRC_FILES := \ libs/filesystem/src/codecvt_error_category.cpp \ libs/filesystem/src/operations.cpp \ libs/filesystem/src/path_traits.cpp \ libs/filesystem/src/path.cpp \ libs/filesystem/src/portability.cpp \ libs/filesystem/src/unique_path.cpp \ libs/filesystem/src/utf8_codecvt_facet.cpp \ libs/filesystem/src/windows_file_codecvt.cpp include $(BUILD_STATIC_LIBRARY) # # build boost_system.a # include $(CLEAR_VARS) LOCAL_MODULE := boost_system LOCAL_ARM_MODE := arm LOCAL_EXPORT_INCLUDES := $(LOCAL_PATH)/boost LOCAL_SRC_FILES := \ libs/system/src/error_code.cpp include $(BUILD_STATIC_LIBRARY)