diff --git a/RepositoryExternal.mk b/RepositoryExternal.mk index fa7288206da6..7466621c371e 100644 --- a/RepositoryExternal.mk +++ b/RepositoryExternal.mk @@ -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) \ diff --git a/configure.ac b/configure.ac index 6d18b249cb8c..71c80781dc9c 100644 --- a/configure.ac +++ b/configure.ac @@ -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= diff --git a/external/libxml2/ExternalPackage_libxml2.mk b/external/libxml2/ExternalPackage_libxml2.mk index d9546820afe5..be13e1964e50 100644 --- a/external/libxml2/ExternalPackage_libxml2.mk +++ b/external/libxml2/ExternalPackage_libxml2.mk @@ -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))) diff --git a/external/libxml2/ExternalProject_libxml2.mk b/external/libxml2/ExternalProject_libxml2.mk index da3511f301c9..6ebbf714e570 100644 --- a/external/libxml2/ExternalProject_libxml2.mk +++ b/external/libxml2/ExternalProject_libxml2.mk @@ -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) diff --git a/external/libxslt/ExternalProject_libxslt.mk b/external/libxslt/ExternalProject_libxslt.mk index dfbda70f4d0e..863553aa1ead 100644 --- a/external/libxslt/ExternalProject_libxslt.mk +++ b/external/libxslt/ExternalProject_libxslt.mk @@ -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) diff --git a/external/xmlsec/ExternalProject_xmlsec.mk b/external/xmlsec/ExternalProject_xmlsec.mk index f7ec898166de..04fd5e3ceda2 100644 --- a/external/xmlsec/ExternalProject_xmlsec.mk +++ b/external/xmlsec/ExternalProject_xmlsec.mk @@ -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 \