libxml2: build with cmake's ninja generator on Windows
A: ninja can make use of ccache out of the box B: ninja participates in the toplevel make job server The target architecture now comes from the compiler configure selected instead of the generator's -A. Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com> Change-Id: I86951768ae42a6684b80298ff149af6c8d8d7fb7 Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/10654 Reviewed-by: Noel Grandin <noel.grandin@collabora.com> Tested-by: Jenkins CPCI <releng@collaboraoffice.com> (cherry picked from commit 29fc77fea92e28dc007781d7f728b67f5b55c58b) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210984 Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org> Tested-by: Jenkins
This commit is contained in:
committed by
Xisco Fauli
parent
7f398acee4
commit
e8e4c0a88f
@@ -4251,7 +4251,7 @@ gb_ExternalExecutable__register_xmllint :=
|
||||
else # ! SYSTEM_LIBXML_FOR_BUILD
|
||||
|
||||
define gb_ExternalExecutable__register_xmllint
|
||||
$(call gb_ExternalExecutable_set_internal,xmllint,$(WORKDIR_FOR_BUILD)/UnpackedTarball/libxml2/$(if $(filter MSC,$(COM)),$(if $(MSVC_USE_DEBUG_RUNTIME),Debug,Release))/xmllint$(gb_Executable_EXT_for_build),libxml2)
|
||||
$(call gb_ExternalExecutable_set_internal,xmllint,$(WORKDIR_FOR_BUILD)/UnpackedTarball/libxml2/xmllint$(gb_Executable_EXT_for_build),libxml2)
|
||||
$(call gb_ExternalExecutable_add_dependencies,xmllint,\
|
||||
$(if $(filter WNT,$(OS)),$(call gb_Package_get_target,icu_ure)) \
|
||||
$(call gb_Package_get_target,libxml2) \
|
||||
|
||||
+7
-5
@@ -1108,8 +1108,6 @@ cygwin*|wsl*)
|
||||
|
||||
DLLPOST=".dll"
|
||||
LINKFLAGSNOUNDEFS=
|
||||
# bypass check for ninja, it is not in default path, but it can be used nevertheless by default
|
||||
NINJA="assumed to be available from Visual Studio"
|
||||
|
||||
if test "$host_cpu" = "aarch64"; then
|
||||
build_skia=yes
|
||||
@@ -4737,6 +4735,10 @@ if test "$_os" = "WINNT"; then
|
||||
PathFormat "$VC_PRODUCT_DIR/../Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/bin/cmake.exe"
|
||||
CMAKE="$formatted_path"
|
||||
|
||||
# Find the ninja that ships with Visual Studio, beside that cmake.
|
||||
PathFormat "$VC_PRODUCT_DIR/../Common7/IDE/CommonExtensions/Microsoft/CMake/Ninja/ninja.exe"
|
||||
NINJA="$formatted_path"
|
||||
|
||||
# Find the version of devenv.exe
|
||||
PathFormat "$VC_PRODUCT_DIR/../Common7/IDE/devenv.exe"
|
||||
DEVENV="$formatted_path"
|
||||
@@ -10620,9 +10622,9 @@ else
|
||||
fi
|
||||
if test "$COM" = "MSC"; then
|
||||
if test "$MSVC_USE_DEBUG_RUNTIME" = TRUE; then
|
||||
LIBXML_LIBS="${WORKDIR}/UnpackedTarball/libxml2/Debug/libxml2d.lib"
|
||||
LIBXML_LIBS="${WORKDIR}/UnpackedTarball/libxml2/libxml2d.lib"
|
||||
else
|
||||
LIBXML_LIBS="${WORKDIR}/UnpackedTarball/libxml2/Release/libxml2.lib"
|
||||
LIBXML_LIBS="${WORKDIR}/UnpackedTarball/libxml2/libxml2.lib"
|
||||
fi
|
||||
else
|
||||
LIBXML_LIBS="-L${WORKDIR}/UnpackedTarball/libxml2/.libs -lxml2"
|
||||
@@ -14999,7 +15001,7 @@ if test "$need_meson" = "yes"; then
|
||||
fi
|
||||
fi
|
||||
|
||||
if test -z "$NINJA" || test "$NINJA" = 'assumed to be available from Visual Studio'; then
|
||||
if test -z "$NINJA"; then
|
||||
x_NINJA=[\#]
|
||||
else
|
||||
x_NINJA=
|
||||
|
||||
+2
-2
@@ -16,9 +16,9 @@ ifeq ($(OS),MACOSX)
|
||||
$(eval $(call gb_ExternalPackage_add_file,libxml2,$(LIBO_URE_LIB_FOLDER)/libxml2.16.dylib,.libs/libxml2.16.dylib))
|
||||
else ifeq ($(OS),WNT)
|
||||
ifeq ($(COM),GCC)
|
||||
$(eval $(call gb_ExternalPackage_add_file,libxml2,$(LIBO_URE_LIB_FOLDER)/libxml2$(if $(MSVC_USE_DEBUG_RUNTIME),d).dll,$(if $(MSVC_USE_DEBUG_RUNTIME),Debug,Release)/libxml2$(if $(MSVC_USE_DEBUG_RUNTIME),d).dll))
|
||||
$(eval $(call gb_ExternalPackage_add_file,libxml2,$(LIBO_URE_LIB_FOLDER)/libxml2$(if $(MSVC_USE_DEBUG_RUNTIME),d).dll,libxml2$(if $(MSVC_USE_DEBUG_RUNTIME),d).dll))
|
||||
else # COM=MSC
|
||||
$(eval $(call gb_ExternalPackage_add_file,libxml2,$(LIBO_URE_LIB_FOLDER)/libxml2$(if $(MSVC_USE_DEBUG_RUNTIME),d).dll,$(if $(MSVC_USE_DEBUG_RUNTIME),Debug,Release)/libxml2$(if $(MSVC_USE_DEBUG_RUNTIME),d).dll))
|
||||
$(eval $(call gb_ExternalPackage_add_file,libxml2,$(LIBO_URE_LIB_FOLDER)/libxml2$(if $(MSVC_USE_DEBUG_RUNTIME),d).dll,libxml2$(if $(MSVC_USE_DEBUG_RUNTIME),d).dll))
|
||||
endif
|
||||
else # OS!=WNT
|
||||
$(eval $(call gb_ExternalPackage_add_file,libxml2,$(LIBO_URE_LIB_FOLDER)/libxml2.so.16,.libs/libxml2.so.16.1.$(LIBXML_VERSION_MICRO)))
|
||||
|
||||
+10
-6
@@ -25,11 +25,15 @@ $(call gb_ExternalProject_use_external_project,libxml2,icu)
|
||||
# workdir\UnpackedTarball\libxml2\version(1): error C2059: syntax error: 'constant
|
||||
$(call gb_ExternalProject_get_state_target,libxml2,build):
|
||||
$(call gb_Trace_StartRange,libxml2,EXTERNAL)
|
||||
$(call gb_ExternalProject_run,build,\
|
||||
$(CMAKE) . \
|
||||
$(if $(filter 17.%,$(VCVER)),-G "Visual Studio 17 2022") \
|
||||
$(if $(filter 18.%,$(VCVER)),-G "Visual Studio 18 2026") \
|
||||
-A $(gb_MSBUILD_PLATFORM) \
|
||||
+$(call gb_ExternalProject_run,build,\
|
||||
export INCLUDE="$(gb_ExternalProject_INCLUDE)" \
|
||||
&& export LIB="$(ILIB)" \
|
||||
&& $(CMAKE) . \
|
||||
-G Ninja \
|
||||
-DCMAKE_MAKE_PROGRAM=$(NINJA) \
|
||||
-DCMAKE_BUILD_TYPE=$(if $(MSVC_USE_DEBUG_RUNTIME),Debug,Release) \
|
||||
-DCMAKE_C_COMPILER=$(lastword $(filter-out -%,$(CC))) \
|
||||
$(if $(CCACHE),-DCMAKE_C_COMPILER_LAUNCHER=$(CCACHE)) \
|
||||
-DLIBXML2_WITH_TESTS=OFF \
|
||||
-DLIBXML2_WITH_ICONV=OFF \
|
||||
-DLIBXML2_WITH_PYTHON=OFF \
|
||||
@@ -40,7 +44,7 @@ $(call gb_ExternalProject_get_state_target,libxml2,build):
|
||||
$(if $(MSVC_USE_DEBUG_RUNTIME), \
|
||||
-DICU_UC_LIBRARY_DEBUG=$(gb_UnpackedTarball_workdir)/icu/source/lib/icuucd.lib, \
|
||||
-DICU_UC_LIBRARY_RELEASE=$(gb_UnpackedTarball_workdir)/icu/source/lib/icuuc.lib) \
|
||||
&& $(CMAKE) --build . --config $(if $(MSVC_USE_DEBUG_RUNTIME),Debug,Release) \
|
||||
&& $(CMAKE) --build . \
|
||||
&& rm VERSION \
|
||||
)
|
||||
$(call gb_Trace_EndRange,libxml2,EXTERNAL)
|
||||
|
||||
+1
-1
@@ -24,7 +24,7 @@ $(call gb_ExternalProject_get_state_target,libxslt,build):
|
||||
$(if $(MSVC_USE_DEBUG_RUNTIME),cruntime=/MDd) \
|
||||
$(if $(filter TRUE,$(ENABLE_DBGUTIL)),debug=yes) \
|
||||
vcmanifest=yes \
|
||||
lib=$(gb_UnpackedTarball_workdir)/libxml2/$(if $(MSVC_USE_DEBUG_RUNTIME),Debug,Release) \
|
||||
lib=$(gb_UnpackedTarball_workdir)/libxml2 \
|
||||
&& nmake \
|
||||
,win32)
|
||||
$(call gb_Trace_EndRange,libxslt,EXTERNAL)
|
||||
|
||||
+1
-1
@@ -33,7 +33,7 @@ $(call gb_ExternalProject_get_state_target,xmlsec,build) :
|
||||
$(call gb_Trace_StartRange,xmlsec,EXTERNAL)
|
||||
$(call gb_ExternalProject_run,build,\
|
||||
cscript /e:javascript configure.js crypto=mscng xslt=no iconv=no static=no \
|
||||
lib=$(gb_UnpackedTarball_workdir)/libxml2/$(if $(MSVC_USE_DEBUG_RUNTIME),Debug,Release) \
|
||||
lib=$(gb_UnpackedTarball_workdir)/libxml2 \
|
||||
$(if $(filter TRUE,$(ENABLE_DBGUTIL)),debug=yes cruntime=/MDd) \
|
||||
cflags="$(SOLARINC) $(LIBXML_CFLAGS)" \
|
||||
&& nmake \
|
||||
|
||||
Reference in New Issue
Block a user