From 626a8d8d3df8880991684d6d1a06b82f6685b51a Mon Sep 17 00:00:00 2001 From: vnugent Date: Sun, 28 Jan 2024 19:23:18 -0500 Subject: initial commit --- Taskfile.yaml | 78 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 Taskfile.yaml (limited to 'Taskfile.yaml') diff --git a/Taskfile.yaml b/Taskfile.yaml new file mode 100644 index 0000000..a1e5b6d --- /dev/null +++ b/Taskfile.yaml @@ -0,0 +1,78 @@ +# https://taskfile.dev + +#Called by the vnbuild system to produce builds for my website +#https://www.vaughnnugent.com/resources/software + +#This taskfile performs the build operations for a module, it handles +#git code updates, msbuild on solutions, and sleet NuGet feed pushes. + +#this file must be in the same directory as the solution file + +#NOTES: Since CI project is pulled from the module root, MODULE_DIR is used instead of PROJECT_DIR + +version: '3' + +tasks: + + default: + desc: "Build the library for your system" + cmds: + - cmake -S . -B./build/ -DCMAKE_BUILD_TYPE=Release + - cmake --build build/ --config Release + - cmd: echo "Build complete your files can be found in the build/ directory" + silent: true + + #called by build pipeline to build module + build: + cmds: + - echo "building project {{.PROJECT_NAME}}" + - cmd: powershell -Command "mkdir bin/ -Force" + ignore_error: true + + #build windows x64 + - task: build_win_x64 + + #pack source + - task: pack_source + + clean: + desc: "Cleans the artifact directory" + cmds: + - cmd: powershell -Command "rm -r bin/ -Force" + ignore_error: + + build_win_x64: + internal: true + vars: + TARGET_DLL: '{{.PROJECT_DIR}}/{{.BINARY_DIR}}/{{.PROJECT_NAME}}-win64.tgz' + DLL_FILES: '{{.PROJECT_NAME}}.dll {{.PROJECT_NAME}}.lib license.txt' + TARGET_STATIC: '{{.PROJECT_DIR}}/{{.BINARY_DIR}}/{{.PROJECT_NAME}}-win64-static.tgz' + STATIC_FILES: '{{.PROJECT_NAME}}_static.lib license.txt' + BUILD_DIR: 'out/build/win-x64' + + cmds: + #invoke cmake build + - cmake -S . -B {{.BUILD_DIR}} -G "Visual Studio 17 2022" -A x64 -DCMAKE_BUILD_TYPE=Release + - cmake --build {{.BUILD_DIR}} --config Release + + #copy license to build dir + - powershell -Command "cp license {{.BUILD_DIR}}/Release/license.txt" + + #tar up the binaries + - cd {{.BUILD_DIR}}/Release && tar -czf "{{.TARGET_DLL}}" {{.DLL_FILES}} + + #tar up static libs + - cd {{.BUILD_DIR}}/Release && tar -czf "{{.TARGET_STATIC}}" {{.STATIC_FILES}} + + + pack_source: + internal: true + desc: "Packs up the project source code and creates a tarball in the builds binary directory" + vars: + TARGET_SOURCE: '{{.PROJECT_DIR}}/{{.BINARY_DIR}}/{{.PROJECT_NAME}}-source.tgz' + SOURCE_FILES: 'CMakeLists.txt src include license tests Taskfile.yaml' + + cmds: + #tar up the source + - tar -czf "{{.TARGET_SOURCE}}" {{.SOURCE_FILES}} + -- cgit