Makefile.fetch | 1 RepositoryExternal.mk | 35 +++++++++++++++ config_host.mk.in | 3 + configure.ac | 31 +++++++++++++ download.lst | 2 external/Module_external.mk | 1 external/box2d/Makefile | 7 +++ external/box2d/Module_box2d.mk | 20 ++++++++ external/box2d/README | 3 + external/box2d/StaticLibrary_box2d.mk | 72 ++++++++++++++++++++++++++++++++ external/box2d/UnpackedTarball_box2d.mk | 14 ++++++ 11 files changed, 189 insertions(+)
New commits: commit a7f2239e649ea1b9ef611d758841584ab51abed0 Author: Sarper Akdemir <q.sarperakde...@gmail.com> AuthorDate: Wed May 13 11:28:05 2020 +0300 Commit: Thorsten Behrens <thorsten.behr...@cib.de> CommitDate: Sun May 17 02:21:54 2020 +0200 external: bundle box2d Bundled box2d with the build system of LO as a static library. If --with-system-box2d was specified checks for instance box2d in the system, defines SYSTEM_BOX2D and uses the library from the system. Change-Id: Ifb05912f2acaff273b25abebafc5af1cac3afec4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/94103 Tested-by: Jenkins Reviewed-by: Thorsten Behrens <thorsten.behr...@cib.de> diff --git a/Makefile.fetch b/Makefile.fetch index cfa3dc58c3a5..0a6202a4b3c7 100644 --- a/Makefile.fetch +++ b/Makefile.fetch @@ -105,6 +105,7 @@ $(WORKDIR)/download: $(BUILDDIR)/config_$(gb_Side).mk $(SRCDIR)/download.lst $(S $(call fetch_Optional,APR,APR_TARBALL) \ $(call fetch_Optional,APR,APR_UTIL_TARBALL) \ $(call fetch_Optional,BOOST,BOOST_TARBALL) \ + $(call fetch_Optional,BOX2D,BOX2D_TARBALL) \ $(call fetch_Optional,BREAKPAD,BREAKPAD_TARBALL) \ $(call fetch_Optional,BSH,BSH_TARBALL) \ $(call fetch_Optional,BZIP2,BZIP2_TARBALL) \ diff --git a/RepositoryExternal.mk b/RepositoryExternal.mk index ba6437276f28..81a65a1a8590 100644 --- a/RepositoryExternal.mk +++ b/RepositoryExternal.mk @@ -4229,4 +4229,39 @@ $(eval $(call gb_Helper_register_packages_for_install,ucrt_binarytable,\ $(if $(UCRT_REDISTDIR),ucrt) \ )) +ifneq ($(SYSTEM_BOX2D),) + +define gb_LinkTarget__use_box2d +$(call gb_LinkTarget_set_include,$(1),\ + -DSYSTEM_BOX2D \ + $$(INCLUDE) \ + $(BOX2D_CFLAGS) \ +) +$(call gb_LinkTarget_add_libs,$(1),$(BOX2D_LIBS)) + +endef + +gb_ExternalProject__use_box2d := + +else # !SYSTEM_BOX2D + +define gb_LinkTarget__use_box2d +$(call gb_LinkTarget_use_unpacked,$(1),box2d) +$(call gb_LinkTarget_set_include,$(1),\ + -I$(call gb_UnpackedTarball_get_dir,box2d/Box2D/)\ + $$(INCLUDE) \ +) +$(call gb_LinkTarget_use_static_libraries,$(1),\ + box2d \ +) + +endef + +define gb_ExternalProject__use_box2d +$(call gb_ExternalProject_use_static_libraries,$(1),box2d) + +endef + +endif # SYSTEM_BOX2D + # vim: set noet sw=4 ts=4: diff --git a/config_host.mk.in b/config_host.mk.in index 7df26713a1dd..bcce45b1ce77 100644 --- a/config_host.mk.in +++ b/config_host.mk.in @@ -45,6 +45,8 @@ export BOOST_FILESYSTEM_LIB=@BOOST_FILESYSTEM_LIB@ export BOOST_IOSTREAMS_LIB=@BOOST_IOSTREAMS_LIB@ export BOOST_LDFLAGS=@BOOST_LDFLAGS@ export BOOST_SYSTEM_LIB=@BOOST_SYSTEM_LIB@ +export BOX2D_CFLAGS=@BOX2D_CFLAGS@ +export BOX2D_LIBS=@BOX2D_LIBS@ export BRAND_INTRO_IMAGES=@BRAND_INTRO_IMAGES@ export BREAKPAD_SYMBOL_CONFIG=@BREAKPAD_SYMBOL_CONFIG@ export BSH_JAR=@BSH_JAR@ @@ -537,6 +539,7 @@ export SYSTEM_APR=@SYSTEM_APR@ export SYSTEM_BLUEZ=@SYSTEM_BLUEZ@ export SYSTEM_BOOST=@SYSTEM_BOOST@ export SYSTEM_BSH=@SYSTEM_BSH@ +export SYSTEM_BOX2D=@SYSTEM_BOX2D@ export SYSTEM_BZIP2=@SYSTEM_BZIP2@ export SYSTEM_CAIRO=@SYSTEM_CAIRO@ export SYSTEM_CLUCENE=@SYSTEM_CLUCENE@ diff --git a/configure.ac b/configure.ac index 23683bed528d..2087b1d3d452 100644 --- a/configure.ac +++ b/configure.ac @@ -1964,6 +1964,11 @@ AC_ARG_WITH(system-qrcodegen, [Use libqrcodegen already on system.]),, [with_system_qrcodegen="$with_system_libs"]) +AC_ARG_WITH(system-box2d, + AS_HELP_STRING([--with-system-box2d], + [Use box2d already on system.]),, + [with_system_box2d="$with_system_libs"]) + AC_ARG_WITH(system-mythes, AS_HELP_STRING([--with-system-mythes], [Use mythes already on system.]),, @@ -10263,6 +10268,32 @@ AC_SUBST(SYSTEM_QRCODEGEN) AC_SUBST(QRCODEGEN_CFLAGS) AC_SUBST(QRCODEGEN_LIBS) +dnl =================================================================== +dnl Check for system box2d +dnl =================================================================== +AC_MSG_CHECKING([which box2d to use]) +if test "$with_system_box2d" = "yes"; then + AC_MSG_RESULT([external]) + SYSTEM_BOX2D=TRUE + AC_LANG_PUSH([C++]) + AC_CHECK_HEADER(Box2D/Box2D.h, [], + [AC_MSG_ERROR(box2d headers not found.)], []) + AC_CHECK_LIB([Box2D], [main], [:], + [ AC_MSG_ERROR(box2d library not found.) ], []) + BOX2D_LIBS=-lBox2D + AC_LANG_POP([C++]) + BOX2D_CFLAGS=$(printf '%s' "$BOX2D_CFLAGS" | sed -e "s/-I/${ISYSTEM?}/g") + FilterLibs "${BOX2D_LIBS}" + BOX2D_LIBS="${filteredlibs}" +else + AC_MSG_RESULT([internal]) + SYSTEM_BOX2D= + BUILD_TYPE="$BUILD_TYPE BOX2D" +fi +AC_SUBST(SYSTEM_BOX2D) +AC_SUBST(BOX2D_CFLAGS) +AC_SUBST(BOX2D_LIBS) + dnl =================================================================== dnl Checking for altlinuxhyph dnl =================================================================== diff --git a/download.lst b/download.lst index 88a723c7fd79..7c78e3071fb9 100644 --- a/download.lst +++ b/download.lst @@ -14,6 +14,8 @@ export APR_UTIL_TARBALL := apr-util-1.5.4.tar.gz # please repack the tarball using external/boost/repack_tarball.sh export BOOST_SHA256SUM := 35e06a3bd7cd8f66be822c7d64e80c2b6051a181e9e897006917cb8e7988a543 export BOOST_TARBALL := boost_1_71_0.tar.xz +export BOX2D_SHA256SUM := 58ffc8475a8650aadc351345aef696937747b40501ab78d72c197c5ff5b3035c +export BOX2D_TARBALL := box2d-2.3.1.tar.gz export BREAKPAD_SHA256SUM := 7060149be16a8789b0ccf596bdeaf63115f03f520acb508f72a14686fb311cb9 export BREAKPAD_TARBALL := breakpad.zip export BSH_SHA256SUM := 9e93c73e23aff644b17dfff656444474c14150e7f3b38b19635e622235e01c96 diff --git a/external/Module_external.mk b/external/Module_external.mk index 286759927781..41e018d2ef3f 100644 --- a/external/Module_external.mk +++ b/external/Module_external.mk @@ -19,6 +19,7 @@ $(eval $(call gb_Module_add_moduledirs,external,\ $(call gb_Helper_optional,APACHE_COMMONS,apache-commons) \ $(call gb_Helper_optional,APR,apr) \ $(call gb_Helper_optional,BOOST,boost) \ + $(call gb_Helper_optional,BOX2D,box2d) \ $(call gb_Helper_optional,BREAKPAD,breakpad) \ $(call gb_Helper_optional,BSH,beanshell) \ $(call gb_Helper_optional,BZIP2,bzip2) \ diff --git a/external/box2d/Makefile b/external/box2d/Makefile new file mode 100644 index 000000000000..e4968cf85fb6 --- /dev/null +++ b/external/box2d/Makefile @@ -0,0 +1,7 @@ +# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*- + +module_directory:=$(dir $(realpath $(firstword $(MAKEFILE_LIST)))) + +include $(module_directory)/../../solenv/gbuild/partial_build.mk + +# vim: set noet sw=4 ts=4: diff --git a/external/box2d/Module_box2d.mk b/external/box2d/Module_box2d.mk new file mode 100644 index 000000000000..3986357b3668 --- /dev/null +++ b/external/box2d/Module_box2d.mk @@ -0,0 +1,20 @@ +# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*- +# +# This file is part of the LibreOffice project. +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# + +$(eval $(call gb_Module_Module,box2d)) + +$(eval $(call gb_Module_add_targets,box2d,\ + UnpackedTarball_box2d \ +)) + +$(eval $(call gb_Module_add_targets,box2d,\ + StaticLibrary_box2d \ +)) + +# vim: set noet sw=4 ts=4: diff --git a/external/box2d/README b/external/box2d/README new file mode 100644 index 000000000000..d2b46b93b09f --- /dev/null +++ b/external/box2d/README @@ -0,0 +1,3 @@ +Box2D is a 2D physics engine. + +It is available from [https://github.com/erincatto/box2d] diff --git a/external/box2d/StaticLibrary_box2d.mk b/external/box2d/StaticLibrary_box2d.mk new file mode 100644 index 000000000000..b50ee47aa498 --- /dev/null +++ b/external/box2d/StaticLibrary_box2d.mk @@ -0,0 +1,72 @@ +# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*- +# +# This file is part of the LibreOffice project. +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# + +$(eval $(call gb_StaticLibrary_StaticLibrary,box2d)) + +$(eval $(call gb_StaticLibrary_use_unpacked,box2d,box2d)) + +$(eval $(call gb_StaticLibrary_set_warnings_disabled,box2d)) + +$(eval $(call gb_StaticLibrary_set_generated_cxx_suffix,box2d,cpp)) + +$(eval $(call gb_StaticLibrary_set_include,box2d,\ + -I$(call gb_UnpackedTarball_get_dir,box2d/Box2D/)\ + $$(INCLUDE)\ +)) + +$(eval $(call gb_StaticLibrary_add_generated_exception_objects,box2d,\ + UnpackedTarball/box2d/Box2D/Box2D/Common/b2Timer \ + UnpackedTarball/box2d/Box2D/Box2D/Common/b2StackAllocator \ + UnpackedTarball/box2d/Box2D/Box2D/Common/b2Draw \ + UnpackedTarball/box2d/Box2D/Box2D/Common/b2Math \ + UnpackedTarball/box2d/Box2D/Box2D/Common/b2BlockAllocator \ + UnpackedTarball/box2d/Box2D/Box2D/Common/b2Settings \ + UnpackedTarball/box2d/Box2D/Box2D/Dynamics/b2Body \ + UnpackedTarball/box2d/Box2D/Box2D/Dynamics/Contacts/b2PolygonAndCircleContact \ + UnpackedTarball/box2d/Box2D/Box2D/Dynamics/Contacts/b2CircleContact \ + UnpackedTarball/box2d/Box2D/Box2D/Dynamics/Contacts/b2ContactSolver \ + UnpackedTarball/box2d/Box2D/Box2D/Dynamics/Contacts/b2PolygonContact \ + UnpackedTarball/box2d/Box2D/Box2D/Dynamics/Contacts/b2ChainAndPolygonContact \ + UnpackedTarball/box2d/Box2D/Box2D/Dynamics/Contacts/b2ChainAndCircleContact \ + UnpackedTarball/box2d/Box2D/Box2D/Dynamics/Contacts/b2Contact \ + UnpackedTarball/box2d/Box2D/Box2D/Dynamics/Contacts/b2EdgeAndPolygonContact \ + UnpackedTarball/box2d/Box2D/Box2D/Dynamics/Contacts/b2EdgeAndCircleContact \ + UnpackedTarball/box2d/Box2D/Box2D/Dynamics/Joints/b2RopeJoint \ + UnpackedTarball/box2d/Box2D/Box2D/Dynamics/Joints/b2WheelJoint \ + UnpackedTarball/box2d/Box2D/Box2D/Dynamics/Joints/b2FrictionJoint \ + UnpackedTarball/box2d/Box2D/Box2D/Dynamics/Joints/b2PrismaticJoint \ + UnpackedTarball/box2d/Box2D/Box2D/Dynamics/Joints/b2WeldJoint \ + UnpackedTarball/box2d/Box2D/Box2D/Dynamics/Joints/b2PulleyJoint \ + UnpackedTarball/box2d/Box2D/Box2D/Dynamics/Joints/b2MouseJoint \ + UnpackedTarball/box2d/Box2D/Box2D/Dynamics/Joints/b2MotorJoint \ + UnpackedTarball/box2d/Box2D/Box2D/Dynamics/Joints/b2DistanceJoint \ + UnpackedTarball/box2d/Box2D/Box2D/Dynamics/Joints/b2GearJoint \ + UnpackedTarball/box2d/Box2D/Box2D/Dynamics/Joints/b2Joint \ + UnpackedTarball/box2d/Box2D/Box2D/Dynamics/Joints/b2RevoluteJoint \ + UnpackedTarball/box2d/Box2D/Box2D/Dynamics/b2WorldCallbacks \ + UnpackedTarball/box2d/Box2D/Box2D/Dynamics/b2Fixture \ + UnpackedTarball/box2d/Box2D/Box2D/Dynamics/b2ContactManager \ + UnpackedTarball/box2d/Box2D/Box2D/Dynamics/b2Island \ + UnpackedTarball/box2d/Box2D/Box2D/Dynamics/b2World \ + UnpackedTarball/box2d/Box2D/Box2D/Rope/b2Rope \ + UnpackedTarball/box2d/Box2D/Box2D/Collision/b2TimeOfImpact \ + UnpackedTarball/box2d/Box2D/Box2D/Collision/b2CollidePolygon \ + UnpackedTarball/box2d/Box2D/Box2D/Collision/b2Distance \ + UnpackedTarball/box2d/Box2D/Box2D/Collision/b2Collision \ + UnpackedTarball/box2d/Box2D/Box2D/Collision/b2CollideEdge \ + UnpackedTarball/box2d/Box2D/Box2D/Collision/b2CollideCircle \ + UnpackedTarball/box2d/Box2D/Box2D/Collision/b2BroadPhase \ + UnpackedTarball/box2d/Box2D/Box2D/Collision/Shapes/b2EdgeShape \ + UnpackedTarball/box2d/Box2D/Box2D/Collision/Shapes/b2CircleShape \ + UnpackedTarball/box2d/Box2D/Box2D/Collision/Shapes/b2ChainShape \ + UnpackedTarball/box2d/Box2D/Box2D/Collision/Shapes/b2PolygonShape \ + UnpackedTarball/box2d/Box2D/Box2D/Collision/b2DynamicTree \ +)) + +# vim: set noet sw=4 ts=4: diff --git a/external/box2d/UnpackedTarball_box2d.mk b/external/box2d/UnpackedTarball_box2d.mk new file mode 100644 index 000000000000..340a17511711 --- /dev/null +++ b/external/box2d/UnpackedTarball_box2d.mk @@ -0,0 +1,14 @@ +#-*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*- +# +# This file is part of the LibreOffice project. +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# + +$(eval $(call gb_UnpackedTarball_UnpackedTarball,box2d)) + +$(eval $(call gb_UnpackedTarball_set_tarball,box2d,$(BOX2D_TARBALL))) + +# vim: set noet sw=4 ts=4: _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits