From b0c4641f02a15954aa195456abbe08389540e51f Mon Sep 17 00:00:00 2001 From: vnugent Date: Mon, 7 Oct 2024 21:11:41 -0400 Subject: build server unit testing and build sim --- lib/Utils.Cryptography/argon2/Taskfile.yaml | 35 +++++++++++++----- lib/Utils.Cryptography/monocypher/CMakeLists.txt | 2 +- lib/Utils.Cryptography/monocypher/Taskfile.yaml | 47 +++++++++++++++++------- 3 files changed, 60 insertions(+), 24 deletions(-) (limited to 'lib/Utils.Cryptography') diff --git a/lib/Utils.Cryptography/argon2/Taskfile.yaml b/lib/Utils.Cryptography/argon2/Taskfile.yaml index d08d3b6..72f543d 100644 --- a/lib/Utils.Cryptography/argon2/Taskfile.yaml +++ b/lib/Utils.Cryptography/argon2/Taskfile.yaml @@ -11,6 +11,8 @@ version: '3' vars: PROJECT_NAME: 'Argon2' MODULE_NAME: 'vnlib.core' + BUILD_DIR: 'build/{{ OS }}' + BUILD_TYPE: '{{ .BUILD_TYPE | default "Release" }}' tasks: @@ -19,15 +21,21 @@ tasks: cmds: #build with defaults - task: build - - cmd: echo "Your Argon2 library file can be found in '{{ .USER_WORKING_DIR }}/build'" + - cmd: echo "Your {{ .PROJECT_NAME }} dll file can be found in '{{ .USER_WORKING_DIR }}/{{ .BUILD_DIR }}'" silent: true build: cmds: - #init cmake build with greedy enabled - - cmake -B./build - - cmake --build build/ --config debug - - cmake --build build/ --config release + - cmd: echo Building {{ .PROJECT_NAME }} in {{ .BUILD_TYPE }} mode + silent: true + + - cmake {{ .CLI_ARGS }} + -B./{{ .BUILD_DIR }} + -DCMAKE_BUILD_TYPE={{ .BUILD_TYPE }} + + #compile + - cmd: cmake --build {{ .BUILD_DIR }}/ --config Debug + - cmd: cmake --build {{ .BUILD_DIR }}/ --config Release postbuild_success: @@ -61,9 +69,9 @@ tasks: internal: true deps: - task: embed - vars: { TARGET: './build/{{ .BUILD_MODE }}' } + vars: { TARGET: './{{ .BUILD_DIR }}/{{ .BUILD_MODE }}' } cmds: - - cmd: cd build/{{ .BUILD_MODE }} && tar -czf '../../bin/msvc-x64-{{ .BUILD_MODE }}-{{ .PROJECT_NAME }}.tgz' {{ .TAR_FILES }} + - cmd: cd {{ .BUILD_DIR }}/{{ .BUILD_MODE }} && tar -czf '../../bin/msvc-x64-{{ .BUILD_MODE }}-{{ .PROJECT_NAME }}.tgz' {{ .TAR_FILES }} #add embeded resources to the binary output for distribution embed: @@ -95,8 +103,17 @@ tasks: #just pack up current directory, excluding build, bin, and git directories - tar {{ .EXCLUDES }} -czf 'bin/src.tgz' {{ .INCLUDES }} + dev-init: + desc: 'Configures the project for local development' + cmds: + - task: build + vars: { BUILD_TYPE: Debug } + + - cmd: echo "dev init complete" + silent: true + clean: ignore_error: true - cmds: + cmds: - for: [ bin/, build/ ] - cmd: powershell -Command "Remove-Item -Recurse '{{ .ITEM }}'" + cmd: powershell rm -Recurse -Force '{{ .ITEM }}' diff --git a/lib/Utils.Cryptography/monocypher/CMakeLists.txt b/lib/Utils.Cryptography/monocypher/CMakeLists.txt index 8cec60b..73e5368 100644 --- a/lib/Utils.Cryptography/monocypher/CMakeLists.txt +++ b/lib/Utils.Cryptography/monocypher/CMakeLists.txt @@ -25,7 +25,7 @@ add_library(${CMAKE_PROJECT_NAME}_static STATIC ${VNLIB_MONOCYPHER_SOURCES} ${HE #if on unix lib will be appended, so we can adjust if(UNIX) - set_target_properties(${CMAKE_PROJECT_NAME} ${CMAKE_PROJECT_NAME}_static PROPERTIES OUTPUT_NAME _vnmonocypher) + set_target_properties(${CMAKE_PROJECT_NAME} ${CMAKE_PROJECT_NAME}_static PROPERTIES OUTPUT_NAME vn_monocypher) endif() #Setup the compiler options diff --git a/lib/Utils.Cryptography/monocypher/Taskfile.yaml b/lib/Utils.Cryptography/monocypher/Taskfile.yaml index e736312..6eabe54 100644 --- a/lib/Utils.Cryptography/monocypher/Taskfile.yaml +++ b/lib/Utils.Cryptography/monocypher/Taskfile.yaml @@ -12,6 +12,8 @@ vars: MS_ARGS: '/p:Platform=x64 /p:RunAnalyzersDuringBuild=false /p:BuildInParallel=true /p:MultiProcessorCompilation=true' PROJECT_NAME: 'vnlib_monocypher' MODULE_NAME: 'vnlib.core' + BUILD_DIR: 'build/{{ OS }}' + BUILD_TYPE: '{{ .BUILD_TYPE | default "Release" }}' tasks: @@ -20,15 +22,23 @@ tasks: cmds: #build with defaults - task: build - - cmd: echo "Your vnlib_monocypher dll file can be found in '{{.USER_WORKING_DIR}}/build'" + - cmd: echo "Your {{ .PROJECT_NAME }} dll file can be found in '{{ .USER_WORKING_DIR }}/{{ .BUILD_DIR }}'" silent: true build: cmds: - #init cmake build - - cmake -B./build - - cmake --build build/ --config Debug - - cmake --build build/ --config Release + - cmd: echo Building {{ .PROJECT_NAME }} in {{ .BUILD_TYPE }} mode + silent: true + + - cmake {{ .CLI_ARGS }} + -B./{{ .BUILD_DIR }} + -DCMAKE_BUILD_TYPE={{ .BUILD_TYPE }} + + #compile + - cmd: cmake --build {{ .BUILD_DIR }}/ --config Debug + platforms: [ windows ] #debug builds only work on Windows + + - cmake --build {{ .BUILD_DIR }}/ --config Release postbuild_success: vars: @@ -43,22 +53,22 @@ tasks: #get licenses for debug - task: licenses vars: - TARGET: './build/Debug' + TARGET: '{{ .BUILD_DIR }}/Debug' - task: licenses vars: - TARGET: './build/Release' + TARGET: './{{ .BUILD_DIR }}/Release' #static debug lib - - cd build/Debug && tar -czf '../../bin/msvc-x64-debug-{{.PROJECT_NAME}}-static.tgz' {{.PROJECT_NAME}}_static.lib {{.TAR_FILES}} {{.PROJECT_NAME}}_static.pdb + - cd {{ .BUILD_DIR }}/Debug && tar -czf '../../bin/msvc-x64-debug-{{.PROJECT_NAME}}-static.tgz' {{.PROJECT_NAME}}_static.lib {{.TAR_FILES}} {{.PROJECT_NAME}}_static.pdb #dynamic debug lib - - cd build/Debug && tar -czf '../../bin/msvc-x64-debug-{{.PROJECT_NAME}}.tgz' {{.PROJECT_NAME}}.dll {{.TAR_FILES}} {{.PROJECT_NAME}}.pdb + - cd {{ .BUILD_DIR }}/Debug && tar -czf '../../bin/msvc-x64-debug-{{.PROJECT_NAME}}.tgz' {{.PROJECT_NAME}}.dll {{.TAR_FILES}} {{.PROJECT_NAME}}.pdb #release static lib - - cd build/Release && tar -czf '../../bin/msvc-x64-release-{{.PROJECT_NAME}}-static.tgz' {{.PROJECT_NAME}}_static.lib {{.TAR_FILES}} + - cd {{ .BUILD_DIR }}/Release && tar -czf '../../bin/msvc-x64-release-{{.PROJECT_NAME}}-static.tgz' {{.PROJECT_NAME}}_static.lib {{.TAR_FILES}} #release dll - - cd build/Release && tar -czf '../../bin/msvc-x64-release-{{.PROJECT_NAME}}.tgz' {{.PROJECT_NAME}}.dll {{.TAR_FILES}} + - cd {{ .BUILD_DIR }}/Release && tar -czf '../../bin/msvc-x64-release-{{.PROJECT_NAME}}.tgz' {{.PROJECT_NAME}}.dll {{.TAR_FILES}} #source code - task: pack_source @@ -78,8 +88,17 @@ tasks: #pack monocypher source code and create the archive - powershell -Command "tar --exclude build/* --exclude bin/* --exclude .git/* -czf 'bin/src.tgz' ." + dev-init: + desc: 'Configures the project for local development' + cmds: + - task: build + vars: { BUILD_TYPE: Debug } + + - cmd: echo "dev init complete" + silent: true + clean: ignore_error: true - cmds: - - cmd: powershell -Command "Remove-Item -Recurse './bin'" - - cmd: powershell -Command "Remove-Item -Recurse './build'" \ No newline at end of file + cmds: + - for: [ bin/, build/ ] + cmd: powershell rm -Recurse -Force '{{ .ITEM }}' \ No newline at end of file -- cgit