From 35416f6655916c7a8505242765f6eb8f702e4fda Mon Sep 17 00:00:00 2001 From: berryzplus Date: Mon, 17 Jun 2024 22:25:16 +0900 Subject: [PATCH] =?UTF-8?q?vcpkg=E3=82=92=E5=B0=8E=E5=85=A5=E3=81=99?= =?UTF-8?q?=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit HeaderMakeのビルドをvcpkg経由にする googletestのビルドをvcpkg経由にする --- HeaderMake/HeaderMake.vcxproj | 96 ------------------- build-gnu.bat | 8 -- build-sln.bat | 13 +++ ci/build-batchfiles.md | 6 +- sakura.sln | 23 +++-- sakura/funccode.targets | 23 +++-- sakura_core/Makefile | 22 +++-- tests/googletest.build.cmd | 89 ----------------- tests/googletest.targets | 45 --------- tests/unittests/Makefile | 20 ++-- tests/unittests/tests1.vcxproj | 17 +++- tools/HeaderMake/CMakeLists.txt | 17 ++++ .../ports/gtest/portfile.cmake | 77 +++++++++++++++ .../ports/gtest/vcpkg.json | 17 ++++ .../ports/header-make/portfile.cmake | 52 ++++++++++ .../ports/header-make/vcpkg.json | 12 +++ .../versions/baseline.json | 12 +++ .../versions/g-/gtest.json | 9 ++ .../versions/h-/header-make.json | 9 ++ vcpkg-configuration.json | 20 ++++ vcpkg.json | 6 ++ 21 files changed, 316 insertions(+), 277 deletions(-) delete mode 100644 HeaderMake/HeaderMake.vcxproj delete mode 100644 tests/googletest.build.cmd delete mode 100644 tests/googletest.targets create mode 100644 tools/HeaderMake/CMakeLists.txt create mode 100644 tools/vcpkg-local-registry/ports/gtest/portfile.cmake create mode 100644 tools/vcpkg-local-registry/ports/gtest/vcpkg.json create mode 100644 tools/vcpkg-local-registry/ports/header-make/portfile.cmake create mode 100644 tools/vcpkg-local-registry/ports/header-make/vcpkg.json create mode 100644 tools/vcpkg-local-registry/versions/baseline.json create mode 100644 tools/vcpkg-local-registry/versions/g-/gtest.json create mode 100644 tools/vcpkg-local-registry/versions/h-/header-make.json create mode 100644 vcpkg-configuration.json create mode 100644 vcpkg.json diff --git a/HeaderMake/HeaderMake.vcxproj b/HeaderMake/HeaderMake.vcxproj deleted file mode 100644 index 347a89a0f6..0000000000 --- a/HeaderMake/HeaderMake.vcxproj +++ /dev/null @@ -1,96 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {0F2918B0-23E3-42E8-A1A8-8739F726A23E} - HeaderMake - Win32Proj - - - - - Application - Unicode - true - - - Application - Unicode - - - - - - - - - - - - $(SolutionDir)build\$(Platform)\$(Configuration)\$(ProjectName)\ - $(SolutionDir)$(Platform)\$(Configuration)\ - - - <_ProjectFileVersion>15.0.27130.2020 - - - true - - - false - - - - Disabled - WIN32;_CONSOLE;_DEBUG;%(PreprocessorDefinitions) - EnableFastChecks - MultiThreadedDebugDLL - - Level3 - EditAndContinue - /source-charset:shift_jis %(AdditionalOptions) - true - - - $(OutDir)$(TargetName)$(TargetExt) - true - Console - MachineX86 - false - - - - - WIN32;_CONSOLE;NDEBUG;%(PreprocessorDefinitions) - MultiThreadedDLL - - Level3 - ProgramDatabase - /source-charset:shift_jis %(AdditionalOptions) - true - - - $(OutDir)$(TargetName)$(TargetExt) - false - Console - true - true - MachineX86 - - - - - - - - - \ No newline at end of file diff --git a/build-gnu.bat b/build-gnu.bat index 3c4aa390ca..16b88bd7be 100644 --- a/build-gnu.bat +++ b/build-gnu.bat @@ -68,14 +68,6 @@ if errorlevel 1 ( ) popd -@rem build "googletest". -call %~dp0tests\googletest.build.cmd %~dp0build\%platform%\%configuration%\gtest_build\ %~dp0build\%platform%\%configuration%\googletest\ -if errorlevel 1 ( - echo error 2 errorlevel %errorlevel% - popd - exit /b 1 -) - @rem build "tests1". set TESTS1_MAKEFILE=%~dp0tests\unittests\Makefile set TESTS1_BUILD_DIR=%~dp0build\%platform%\%configuration%\tests1 diff --git a/build-sln.bat b/build-sln.bat index 42e42eae2a..4d9634f77f 100644 --- a/build-sln.bat +++ b/build-sln.bat @@ -19,6 +19,19 @@ if "%configuration%" == "Release" ( call :showhelp %0 exit /b 1 ) + +: For AppVeyor(AppVeyor doesn't checkout submodules automatically.) +pushd "%~dp0" + +if not exist tools\vcpkg\bootstrap-vcpkg.bat ( + git submodule init + git submodule update +) + +.\tools\BuildDependencies.bat + +popd + if not defined CMD_MSBUILD call %~dp0tools\find-tools.bat if not defined CMD_MSBUILD ( echo msbuild.exe was not found. diff --git a/ci/build-batchfiles.md b/ci/build-batchfiles.md index d2591c04f3..de6ce2e006 100644 --- a/ci/build-batchfiles.md +++ b/ci/build-batchfiles.md @@ -29,7 +29,6 @@ |[sakura\preBuild.bat](../sakura/preBuild.bat) | 特に何もしない | |[sakura\githash.bat](../sakura/githash.bat) | Git や CI の環境変数から githash.h を生成する | |[sakura\postBuild.bat](../sakura/postBuild.bat) | bregonig.dll と ctags.exe を展開しコピーする | -|[tests\googletest.build.cmd](../tests/googletest.build.cmd) | Google Test をビルドする | |[tests\compiletests.run.cmd](../tests/compiletests.run.cmd) | コンパイルテストを実行する | |[build-sonar-qube-finish.bat](../build-sonar-qube-finish.bat) | SonarQube の解析結果をアップロードする | |[parse-buildlog.bat](../parse-buildlog.bat) | ビルドログを解析する | @@ -51,6 +50,7 @@ SonarQube に関しては [こちら](../SonarQube.md) も参照してくださ - [tools\zip\unzip.bat](../tools/zip/unzip.bat) : ZIP ファイルを展開する - 7z.exe または [tools\zip\unzip.ps1](../tools/zip/unzip.ps1) - MSBuild.exe sakura.sln + - vcpkg.exe - [sakura\preBuild.bat](../sakura/preBuild.bat) - HeaderMake.exe : Funccode_define.h, Funccode_enum.h を生成する - [sakura\githash.bat](../sakura/githash.bat) @@ -58,9 +58,6 @@ SonarQube に関しては [こちら](../SonarQube.md) も参照してくださ - [sakura\postBuild.bat](../sakura/postBuild.bat) - [tools\zip\unzip.bat](../tools/zip/unzip.bat) - 7z.exe または [tools\zip\unzip.ps1](../tools/zip/unzip.ps1) - - [tests\googletest.build.cmd](../tests/googletest.build.cmd) - - git.exe - - cmake.exe - [tests\compiletests.run.cmd](../tests/compiletests.run.cmd) - cmake.exe - [build-sonar-qube-finish.bat](../build-sonar-qube-finish.bat) @@ -73,6 +70,7 @@ SonarQube に関しては [こちら](../SonarQube.md) も参照してくださ - mingw32-make.exe sakura_core - [sakura\githash.bat](../sakura/githash.bat) - git.exe + - vcpkg.exe - HeaderMake.exe - [build-chm.bat](../build-chm.bat) - [help\remove-comment.py](../help/remove-comment.py) : [sakura_core\sakura.hh](../sakura_core/sakura.hh) に記述された日本語を含む行コメントを削除する diff --git a/sakura.sln b/sakura.sln index 30f81c7aa7..7ab1e05f11 100644 --- a/sakura.sln +++ b/sakura.sln @@ -1,15 +1,22 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27130.2026 +# Visual Studio Version 17 +VisualStudioVersion = 17.9.34902.65 MinimumVisualStudioVersion = 10.0.40219.1 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sakura", "sakura\sakura.vcxproj", "{AF03508C-515E-4A0E-87BE-67ED1E254BD0}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "HeaderMake", "HeaderMake\HeaderMake.vcxproj", "{0F2918B0-23E3-42E8-A1A8-8739F726A23E}" -EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sakura_lang_en_US", "sakura_lang_en_US\sakura_lang_en_US.vcxproj", "{7A6D0F29-E560-4985-835B-5F92A08EB242}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tests1", "tests\unittests\tests1.vcxproj", "{701E3407-EC27-49F7-ADC7-520CF2B4B438}" EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{DD14BD9B-2E0F-4C53-8F16-EA9969FDEA45}" + ProjectSection(SolutionItems) = preProject + .editorconfig = .editorconfig + .vsconfig = .vsconfig + sakura_core\Funccode_x.hsrc = sakura_core\Funccode_x.hsrc + sakura\sakura.natvis = sakura\sakura.natvis + sonar-project.properties = sonar-project.properties + EndProjectSection +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 @@ -26,14 +33,6 @@ Global {AF03508C-515E-4A0E-87BE-67ED1E254BD0}.Release|Win32.Build.0 = Release|Win32 {AF03508C-515E-4A0E-87BE-67ED1E254BD0}.Release|x64.ActiveCfg = Release|x64 {AF03508C-515E-4A0E-87BE-67ED1E254BD0}.Release|x64.Build.0 = Release|x64 - {0F2918B0-23E3-42E8-A1A8-8739F726A23E}.Debug|Win32.ActiveCfg = Debug|Win32 - {0F2918B0-23E3-42E8-A1A8-8739F726A23E}.Debug|Win32.Build.0 = Debug|Win32 - {0F2918B0-23E3-42E8-A1A8-8739F726A23E}.Debug|x64.ActiveCfg = Debug|Win32 - {0F2918B0-23E3-42E8-A1A8-8739F726A23E}.Debug|x64.Build.0 = Debug|Win32 - {0F2918B0-23E3-42E8-A1A8-8739F726A23E}.Release|Win32.ActiveCfg = Release|Win32 - {0F2918B0-23E3-42E8-A1A8-8739F726A23E}.Release|Win32.Build.0 = Release|Win32 - {0F2918B0-23E3-42E8-A1A8-8739F726A23E}.Release|x64.ActiveCfg = Release|Win32 - {0F2918B0-23E3-42E8-A1A8-8739F726A23E}.Release|x64.Build.0 = Release|Win32 {7A6D0F29-E560-4985-835B-5F92A08EB242}.Debug|Win32.ActiveCfg = Debug|Win32 {7A6D0F29-E560-4985-835B-5F92A08EB242}.Debug|Win32.Build.0 = Debug|Win32 {7A6D0F29-E560-4985-835B-5F92A08EB242}.Debug|x64.ActiveCfg = Debug|x64 diff --git a/sakura/funccode.targets b/sakura/funccode.targets index 1da83e8d6c..35b161f121 100644 --- a/sakura/funccode.targets +++ b/sakura/funccode.targets @@ -1,15 +1,24 @@ + + Debug + true + $([MSBuild]::NormalizePath('$(MSBuildThisFileDirectory)', '..\')) + $([MSBuild]::NormalizePath('$(MSBuildThisFileDirectory)', '..\build\vcpkg_installed\')) + x86-windows-static + x64-windows-static + true + - ..\Win32\$(Configuration)\HeaderMake.exe + $(VcpkgInstalledDir)$(VcpkgTriplet)\tools\header-make\HeaderMake.exe ..\sakura_core\Funccode_define.h ..\sakura_core\Funccode_enum.h - - - {0f2918b0-23e3-42e8-a1a8-8739f726a23e} - false - - + + + diff --git a/sakura_core/Makefile b/sakura_core/Makefile index 39ffe880c5..7d17758003 100644 --- a/sakura_core/Makefile +++ b/sakura_core/Makefile @@ -23,6 +23,10 @@ endif # If empty, they will be output to the default directories. OUTDIR = +CURRENT_INSTALLED_DIR = ../../../vcpkg_installed + +TARGET_TRIPLET = x64-mingw-static + ifeq ($(SHELL),sh.exe) # If cmd.exe is used as a shell. MKDIR = md @@ -78,13 +82,18 @@ CFLAGS= \ -fexec-charset=cp932 \ -MMD \ -I. \ + -I$(CURRENT_INSTALLED_DIR)/$(TARGET_TRIPLET)/include \ -I$(SRCDIR) \ $(DEFINES) $(MYCFLAGS) CXXFLAGS= $(CFLAGS) \ -std=c++17 \ $(MYCXXFLAGS) -LIBS= \ +LDFLAGS= \ -static \ + -mwindows \ + -municode \ + -L$(CURRENT_INSTALLED_DIR)/$(TARGET_TRIPLET)/lib +LIBS= \ -lwinspool \ -lole32 \ -loleaut32 \ @@ -99,8 +108,6 @@ LIBS= \ -lwindowscodecs \ -lmsimg32 \ -lurlmon \ - -mwindows \ - -municode \ $(MYLIBS) exe= $(or $(OUTDIR),.)/sakura.exe @@ -123,15 +130,14 @@ GENERATED_FILES= \ Funccode_enum.h \ githash.h \ -HEADERMAKETOOLDIR= $(SRCDIR)/../HeaderMake -HEADERMAKE= $(or $(OUTDIR),$(HEADERMAKETOOLDIR))/HeaderMake.exe +HEADERMAKE = $(CURRENT_INSTALLED_DIR)/$(TARGET_TRIPLET)/tools/header-make/HeaderMake.exe all: $(exe) \ $(bregonig) \ $(ctags) $(exe): $(OBJS) sakura_rc.o - $(CXX) -o $@ $(OBJS) sakura_rc.o $(LIBS) + $(CXX) $(LDFLAGS) -o $@ $(OBJS) sakura_rc.o $(LIBS) $(bregonig): ../installer/externals/bregonig/bron420.zip $(P7Z) e $< -o$(@D) -y x64/$(@F) @@ -159,8 +165,8 @@ endif $(OBJS): StdAfx.h.gch -$(HEADERMAKE): $(HEADERMAKETOOLDIR)/HeaderMake.cpp - $(CXX) $(CXXFLAGS:-MMD=) $< -o $@ -static-libgcc +$(HEADERMAKE): ../HeaderMake/HeaderMake.cpp + vcpkg install --x-wait-for-lock --triplet $(TARGET_TRIPLET) "--x-manifest-root=$(SRCDIR)/../" "--x-install-root=$(CURRENT_INSTALLED_DIR)" sakura_rc.o: sakura_rc.rc.utf8 sakura_rc.rc2.utf8 githash.h Funccode_define.h $(RC) -c utf-8 --language=0411 $(DEFINES) -I. -I$(SRCDIR) $< -o $@ diff --git a/tests/googletest.build.cmd b/tests/googletest.build.cmd deleted file mode 100644 index ceeecc6248..0000000000 --- a/tests/googletest.build.cmd +++ /dev/null @@ -1,89 +0,0 @@ -setlocal -set BUILD_DIR=%~dp1 -set GOOGLETEST_INSTALL_PATH=%~dp2 - -set SOURCE_DIR=%~dp0googletest - -:: find generic tools -if not defined CMD_NINJA call %~dp0..\tools\find-tools.bat - -if not exist "%CMD_CMAKE%" ( - echo "no cmake found." - exit /b 1 -) - -if not exist "%CMD_NINJA%" ( - echo "no ninja found." - exit /b 1 -) - -pushd "%SOURCE_DIR%" || exit /b 1 -if not exist CMakeLists.txt ( - if not exist "%CMD_GIT%" ( - echo "no git found." - exit /b 1 - ) - "%CMD_GIT%" submodule update --init || exit /b 1 -) -popd - -mkdir %BUILD_DIR% > NUL 2>&1 -pushd %BUILD_DIR% - -call :run_cmake_install - -endlocal && exit /b 0 - -:run_cmake_install -call :run_cmake_configure -"%CMD_CMAKE%" --build . --config %CONFIGURATION% --target install || endlocal && exit /b 1 -goto :EOF - -:run_cmake_configure -if "%PLATFORM%" == "Win32" ( - call :find_cl_compilers -) -if "%PLATFORM%" == "x64" ( - call :find_cl_compilers -) -if "%PLATFORM%" == "MinGW" ( - call :find_gcc_compilers -) - -:: install lib64 for x64-platform. -if "%PLATFORM%" == "x64" ( - set GENERATOR_OPTS=-DCMAKE_INSTALL_LIBDIR=lib64 %GENERATOR_OPTS% -) - -:: run cmake configuration. -"%CMD_CMAKE%" -G Ninja ^ - "-DCMAKE_MAKE_PROGRAM=%CMD_NINJA%" ^ - "-DCMAKE_C_COMPILER=%C_COMPILER%" ^ - "-DCMAKE_CXX_COMPILER=%CXX_COMPILER%" ^ - -DCMAKE_BUILD_TYPE=%CONFIGURATION% ^ - -DCMAKE_INSTALL_PREFIX=%GOOGLETEST_INSTALL_PATH% ^ - %GENERATOR_OPTS% ^ - -DBUILD_GMOCK=ON ^ - -Dgtest_build_tests=OFF ^ - -Dgtest_build_samples=OFF ^ - %SOURCE_DIR% ^ - || endlocal && exit /b 1 -goto :EOF - -:find_cl_compilers -call :find_cl -set C_COMPILER=%CMD_CL:\=/% -set CXX_COMPILER=%CMD_CL:\=/% -goto :EOF - -:find_cl -for /f "usebackq delims=" %%a in (`where cl.exe`) do ( - set "CMD_CL=%%a" - goto :EOF -) -goto :EOF - -:find_gcc_compilers -set C_COMPILER=C:/msys64/mingw64/bin/gcc.exe -set CXX_COMPILER=C:/msys64/mingw64/bin/g++.exe -goto :EOF diff --git a/tests/googletest.targets b/tests/googletest.targets deleted file mode 100644 index 61cef7edaa..0000000000 --- a/tests/googletest.targets +++ /dev/null @@ -1,45 +0,0 @@ - - - $(MSBuildThisFileDirectory)googletest - $(SolutionDir)build\$(Platform)\$(Configuration)\gtest_build\ - $(SolutionDir)build\$(Platform)\$(Configuration)\googletest\ - $(GoogleTestInstallDir)include;$(IncludePath) - $(GoogleTestInstallDir)lib - $(GoogleTestInstallDir)lib64 - $(GoogleTestLibInstallDir);$(LibraryPath) - gtest.lib - $(GoogleTestLibInstallDir)\$(GTestLibName) - gmock.lib - $(GoogleTestLibInstallDir)\$(GMockLibName) - - - - _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING;%(PreprocessorDefinitions) - - - - - $(GTestLibName);%(AdditionalDependencies) - $(GMockLibName);%(AdditionalDependencies) - - - - - - - - - - - $([System.Text.RegularExpressions.Regex]::Replace('$(VisualStudioVersion)', '^(\d+).*', '$1')) - - - - - - - - - - - \ No newline at end of file diff --git a/tests/unittests/Makefile b/tests/unittests/Makefile index 0c0e266915..0a2a73e8e8 100644 --- a/tests/unittests/Makefile +++ b/tests/unittests/Makefile @@ -27,12 +27,14 @@ endif # The directory where "sakura_core" is built. SAKURA_CORE = ../sakura_core -GOOGLETEST_INSTALL_DIR = ../googletest - # The directory where the .exe files will be output. # If empty, they will be output to the default directories. OUTDIR = +CURRENT_INSTALLED_DIR = ../../../vcpkg_installed + +TARGET_TRIPLET = x64-mingw-static + ifeq ($(SHELL),sh.exe) # If cmd.exe is used as a shell. MKDIR = md @@ -87,10 +89,10 @@ CFLAGS= \ -finput-charset=utf-8 \ -fexec-charset=cp932 \ -MMD \ - -isystem $(GOOGLETEST_INSTALL_DIR)/include \ + -I. \ + -I$(CURRENT_INSTALLED_DIR)/$(TARGET_TRIPLET)/include \ -I$(SAKURA_CORE) \ -I$(SRCDIR)/../../sakura_core \ - -I. \ -I$(SRCDIR) \ $(DEFINES) $(MYCFLAGS) @@ -98,8 +100,13 @@ CXXFLAGS= $(CFLAGS) \ -std=c++17 \ $(MYCXXFLAGS) -LIBS= \ +LDFLAGS= \ -static \ + -mwindows \ + -municode \ + -L$(CURRENT_INSTALLED_DIR)/$(TARGET_TRIPLET)/lib + +LIBS= \ -lwinspool \ -lole32 \ -loleaut32 \ @@ -117,7 +124,6 @@ LIBS= \ -lkernel32 \ -lgdi32 \ -lcomdlg32 \ - -L$(GOOGLETEST_INSTALL_DIR)/lib \ -lgtest \ -lgmock \ $(MYLIBS) @@ -140,7 +146,7 @@ SAKURA_OBJS = $(SAKURA_SRCS:$(SRCDIR)/../../sakura_core/%.cpp=$(SAKURA_CORE)/%.o all: $(exe) $(exe): $(OBJS) $(SAKURA_OBJS) - $(CXX) -o $@ $(OBJS) $(SAKURA_OBJS) $(LIBS) + $(CXX) $(LDFLAGS) -o $@ $(OBJS) $(SAKURA_OBJS) $(LIBS) .cpp.o: $(CXX) $(CXXFLAGS) -o $@ -c $< diff --git a/tests/unittests/tests1.vcxproj b/tests/unittests/tests1.vcxproj index 5737ef7d38..fa060ddd1d 100644 --- a/tests/unittests/tests1.vcxproj +++ b/tests/unittests/tests1.vcxproj @@ -39,7 +39,19 @@ $(SolutionDir)build\$(Platform)\$(Configuration)\$(ProjectName)\ $(SolutionDir)$(Platform)\$(Configuration)\ - + + Debug + true + $([MSBuild]::NormalizePath('$(MSBuildThisFileDirectory)', '..\..\build\vcpkg_installed\')) + x86-windows-static + x64-windows-static + true + + + + _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING;%(PreprocessorDefinitions) + + $(SolutionDir)sakura_core;%(AdditionalIncludeDirectories) @@ -52,6 +64,9 @@ $(IntDir);%(AdditionalIncludeDirectories) + + true + Console comctl32.lib;Imm32.lib;mpr.lib;imagehlp.lib;Shlwapi.lib;Dwmapi.lib;%(AdditionalDependencies) diff --git a/tools/HeaderMake/CMakeLists.txt b/tools/HeaderMake/CMakeLists.txt new file mode 100644 index 0000000000..16693b5911 --- /dev/null +++ b/tools/HeaderMake/CMakeLists.txt @@ -0,0 +1,17 @@ +cmake_minimum_required(VERSION 3.7) + +# define a project +project (HeaderMake) + +# add test executable +add_executable(${PROJECT_NAME} ../../HeaderMake/HeaderMake.cpp) + +# add definitions +target_compile_definitions(${PROJECT_NAME} PUBLIC _CONSOLE UNICODE _UNICODE) + +# add install target +install( + TARGETS ${PROJECT_NAME} + EXPORT ${PROJECT_NAME}-targets + RUNTIME DESTINATION bin +) diff --git a/tools/vcpkg-local-registry/ports/gtest/portfile.cmake b/tools/vcpkg-local-registry/ports/gtest/portfile.cmake new file mode 100644 index 0000000000..6ea84f3546 --- /dev/null +++ b/tools/vcpkg-local-registry/ports/gtest/portfile.cmake @@ -0,0 +1,77 @@ +# Common Ambient Variables: +# CURRENT_BUILDTREES_DIR = ${VCPKG_ROOT_DIR}\buildtrees\${PORT} +# CURRENT_PACKAGES_DIR = ${VCPKG_ROOT_DIR}\packages\${PORT}_${TARGET_TRIPLET} +# CURRENT_PORT_DIR = ${VCPKG_ROOT_DIR}\ports\${PORT} +# CURRENT_INSTALLED_DIR = ${VCPKG_ROOT_DIR}\installed\${TRIPLET} +# DOWNLOADS = ${VCPKG_ROOT_DIR}\downloads +# PORT = current port name (zlib, etc) +# TARGET_TRIPLET = current triplet (x86-windows, x64-windows-static, etc) +# VCPKG_CRT_LINKAGE = C runtime linkage type (static, dynamic) +# VCPKG_LIBRARY_LINKAGE = target library linkage type (static, dynamic) +# VCPKG_ROOT_DIR = +# VCPKG_TARGET_ARCHITECTURE = target architecture (x64, x86, arm) +# VCPKG_TOOLCHAIN = ON OFF +# TRIPLET_SYSTEM_ARCH = arm x86 x64 +# BUILD_ARCH = "Win32" "x64" "ARM" +# DEBUG_CONFIG = "Debug Static" "Debug Dll" +# RELEASE_CONFIG = "Release Static"" "Release DLL" +# VCPKG_TARGET_IS_WINDOWS +# VCPKG_TARGET_IS_UWP +# VCPKG_TARGET_IS_LINUX +# VCPKG_TARGET_IS_OSX +# VCPKG_TARGET_IS_FREEBSD +# VCPKG_TARGET_IS_ANDROID +# VCPKG_TARGET_IS_MINGW +# VCPKG_TARGET_EXECUTABLE_SUFFIX +# VCPKG_TARGET_STATIC_LIBRARY_SUFFIX +# VCPKG_TARGET_SHARED_LIBRARY_SUFFIX +# +# See additional helpful variables in /docs/maintainers/vcpkg_common_definitions.md + +# ソースパスはローカルを指定。 +set(SOURCE_PATH ${CURRENT_PORT_DIR}/../../../../tests/googletest) + +# CMakeコンフィグを実行。 +vcpkg_cmake_configure( + SOURCE_PATH "${SOURCE_PATH}" + OPTIONS + -DBUILD_GMOCK=ON + -Dgtest_build_tests=OFF + -Dgtest_build_samples=OFF +) + +vcpkg_cmake_install() +vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/GTest) + +file( + INSTALL + "${SOURCE_PATH}/googletest/src/gtest.cc" + "${SOURCE_PATH}/googletest/src/gtest_main.cc" + "${SOURCE_PATH}/googletest/src/gtest-all.cc" + "${SOURCE_PATH}/googletest/src/gtest-assertion-result.cc" + "${SOURCE_PATH}/googletest/src/gtest-death-test.cc" + "${SOURCE_PATH}/googletest/src/gtest-filepath.cc" + "${SOURCE_PATH}/googletest/src/gtest-internal-inl.h" + "${SOURCE_PATH}/googletest/src/gtest-matchers.cc" + "${SOURCE_PATH}/googletest/src/gtest-port.cc" + "${SOURCE_PATH}/googletest/src/gtest-printers.cc" + "${SOURCE_PATH}/googletest/src/gtest-test-part.cc" + "${SOURCE_PATH}/googletest/src/gtest-typed-test.cc" + DESTINATION + ${CURRENT_PACKAGES_DIR}/src +) + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) + +vcpkg_fixup_pkgconfig() +if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") + vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/gmock_main.pc" "libdir=\${prefix}/lib" "libdir=\${prefix}/lib/manual-link") + vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/gtest_main.pc" "libdir=\${prefix}/lib" "libdir=\${prefix}/lib/manual-link") +endif() +if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") + vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/gmock_main.pc" "libdir=\${prefix}/lib" "libdir=\${prefix}/lib/manual-link") + vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/gtest_main.pc" "libdir=\${prefix}/lib" "libdir=\${prefix}/lib/manual-link") +endif() +vcpkg_copy_pdbs() + +vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") diff --git a/tools/vcpkg-local-registry/ports/gtest/vcpkg.json b/tools/vcpkg-local-registry/ports/gtest/vcpkg.json new file mode 100644 index 0000000000..406a2dff5a --- /dev/null +++ b/tools/vcpkg-local-registry/ports/gtest/vcpkg.json @@ -0,0 +1,17 @@ +{ + "name": "gtest", + "version-semver": "1.14.0", + "description": "GoogleTest and GoogleMock testing frameworks", + "homepage": "https://github.com/google/googletest", + "license": "BSD-3-Clause", + "dependencies": [ + { + "name": "vcpkg-cmake", + "host": true + }, + { + "name": "vcpkg-cmake-config", + "host": true + } + ] +} diff --git a/tools/vcpkg-local-registry/ports/header-make/portfile.cmake b/tools/vcpkg-local-registry/ports/header-make/portfile.cmake new file mode 100644 index 0000000000..e002775840 --- /dev/null +++ b/tools/vcpkg-local-registry/ports/header-make/portfile.cmake @@ -0,0 +1,52 @@ +# Common Ambient Variables: +# CURRENT_BUILDTREES_DIR = ${VCPKG_ROOT_DIR}\buildtrees\${PORT} +# CURRENT_PACKAGES_DIR = ${VCPKG_ROOT_DIR}\packages\${PORT}_${TARGET_TRIPLET} +# CURRENT_PORT_DIR = ${VCPKG_ROOT_DIR}\ports\${PORT} +# CURRENT_INSTALLED_DIR = ${VCPKG_ROOT_DIR}\installed\${TRIPLET} +# DOWNLOADS = ${VCPKG_ROOT_DIR}\downloads +# PORT = current port name (zlib, etc) +# TARGET_TRIPLET = current triplet (x86-windows, x64-windows-static, etc) +# VCPKG_CRT_LINKAGE = C runtime linkage type (static, dynamic) +# VCPKG_LIBRARY_LINKAGE = target library linkage type (static, dynamic) +# VCPKG_ROOT_DIR = +# VCPKG_TARGET_ARCHITECTURE = target architecture (x64, x86, arm) +# VCPKG_TOOLCHAIN = ON OFF +# TRIPLET_SYSTEM_ARCH = arm x86 x64 +# BUILD_ARCH = "Win32" "x64" "ARM" +# DEBUG_CONFIG = "Debug Static" "Debug Dll" +# RELEASE_CONFIG = "Release Static"" "Release DLL" +# VCPKG_TARGET_IS_WINDOWS +# VCPKG_TARGET_IS_UWP +# VCPKG_TARGET_IS_LINUX +# VCPKG_TARGET_IS_OSX +# VCPKG_TARGET_IS_FREEBSD +# VCPKG_TARGET_IS_ANDROID +# VCPKG_TARGET_IS_MINGW +# VCPKG_TARGET_EXECUTABLE_SUFFIX +# VCPKG_TARGET_STATIC_LIBRARY_SUFFIX +# VCPKG_TARGET_SHARED_LIBRARY_SUFFIX +# +# See additional helpful variables in /docs/maintainers/vcpkg_common_definitions.md + +# includeフォルダーが空でも警告が出ないモードを指定。 +set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled) + +# ソースパスはローカルを指定。 +set(SOURCE_PATH ${CURRENT_PORT_DIR}/../../../HeaderMake) + +# CMakeコンフィグを実行。 +vcpkg_cmake_configure( + SOURCE_PATH "${SOURCE_PATH}" +) + +# 一旦インストールする。 +vcpkg_cmake_install() + +# /binに出力されたexeをツールフォルダにコピー。 +vcpkg_copy_tools(TOOL_NAMES HeaderMake) + +# ツールインストールに不要なフォルダーを削除。 +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin" "${CURRENT_PACKAGES_DIR}/debug") + +# 著作権ファイルはトップフォルダーのものを流用する。 +vcpkg_install_copyright(FILE_LIST "${CURRENT_PORT_DIR}/../../../../LICENSE") diff --git a/tools/vcpkg-local-registry/ports/header-make/vcpkg.json b/tools/vcpkg-local-registry/ports/header-make/vcpkg.json new file mode 100644 index 0000000000..2f184d8e71 --- /dev/null +++ b/tools/vcpkg-local-registry/ports/header-make/vcpkg.json @@ -0,0 +1,12 @@ +{ + "name": "header-make", + "version": "1.0.0", + "homepage": "https://github.com/sakura-editor/sakura", + "description": "HeaderMake.exe", + "dependencies": [ + { + "name": "vcpkg-cmake", + "host": true + } + ] +} diff --git a/tools/vcpkg-local-registry/versions/baseline.json b/tools/vcpkg-local-registry/versions/baseline.json new file mode 100644 index 0000000000..a9d3e111de --- /dev/null +++ b/tools/vcpkg-local-registry/versions/baseline.json @@ -0,0 +1,12 @@ +{ + "2024-06-11": { + "gtest": { + "baseline": "1.14.0", + "port-version": 0 + }, + "header-make": { + "baseline": "1.0.0", + "port-version": 0 + } + } +} diff --git a/tools/vcpkg-local-registry/versions/g-/gtest.json b/tools/vcpkg-local-registry/versions/g-/gtest.json new file mode 100644 index 0000000000..631750b89b --- /dev/null +++ b/tools/vcpkg-local-registry/versions/g-/gtest.json @@ -0,0 +1,9 @@ +{ + "versions": [ + { + "version": "1.14.0", + "port-version": 0, + "path": "$/ports/gtest" + } + ] +} \ No newline at end of file diff --git a/tools/vcpkg-local-registry/versions/h-/header-make.json b/tools/vcpkg-local-registry/versions/h-/header-make.json new file mode 100644 index 0000000000..1fa4d4b2aa --- /dev/null +++ b/tools/vcpkg-local-registry/versions/h-/header-make.json @@ -0,0 +1,9 @@ +{ + "versions": [ + { + "version": "1.0.0", + "port-version": 0, + "path": "$/ports/header-make" + } + ] +} \ No newline at end of file diff --git a/vcpkg-configuration.json b/vcpkg-configuration.json new file mode 100644 index 0000000000..62174a95f2 --- /dev/null +++ b/vcpkg-configuration.json @@ -0,0 +1,20 @@ +{ + "default-registry": { + "kind": "git", + "baseline": "000d1bda1ffa95a73e0b40334fa4103d6f4d3d48", + "repository": "https://github.com/microsoft/vcpkg" + }, + "registries": [ + { + "baseline": "2024-06-11", + "kind": "filesystem", + "packages": ["gtest", "header-make"], + "path": "tools/vcpkg-local-registry" + }, + { + "kind": "artifact", + "location": "https://github.com/microsoft/vcpkg-ce-catalog/archive/refs/heads/main.zip", + "name": "microsoft" + } + ] +} diff --git a/vcpkg.json b/vcpkg.json new file mode 100644 index 0000000000..cb6a8dbda8 --- /dev/null +++ b/vcpkg.json @@ -0,0 +1,6 @@ +{ + "dependencies": [ + "header-make", + "gtest" + ] +}