mirror of
				https://github.com/Ed94/gencpp.git
				synced 2025-11-03 15:26:12 -08:00 
			
		
		
		
	More dependency movement from zpl, incremental design improvements.
Made token_fmt more ergonomic, going to have to use a similar behavior with the upfront body constructors.
This commit is contained in:
		@@ -13,51 +13,45 @@ foreach ( $arg in $args )
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
$path_root       = git rev-parse --show-toplevel
 | 
			
		||||
$path_build      = Join-Path $path_root build
 | 
			
		||||
$path_scripts    = Join-Path $path_root scripts
 | 
			
		||||
$path_test       = Join-Path $path_root test
 | 
			
		||||
$path_gen        = Join-Path $path_test gen
 | 
			
		||||
$path_test_build = Join-Path $path_test build
 | 
			
		||||
$path_gen_build  = Join-Path $path_gen  build
 | 
			
		||||
 | 
			
		||||
$path_root    = git rev-parse --show-toplevel
 | 
			
		||||
$path_build   = Join-Path $path_root build
 | 
			
		||||
$path_scripts = Join-Path $path_root scripts
 | 
			
		||||
write-host "`n`nBuilding Test`n"
 | 
			
		||||
 | 
			
		||||
if ( -not( Test-Path $path_gen_build ) )
 | 
			
		||||
{
 | 
			
		||||
# Generate build files for meta-program
 | 
			
		||||
Push-Location $path_gen
 | 
			
		||||
	$args_meson  = @()
 | 
			
		||||
	$args_meson += "setup"
 | 
			
		||||
	$args_meson += $path_gen_build
 | 
			
		||||
 | 
			
		||||
# if ( $test -eq $true )
 | 
			
		||||
# {
 | 
			
		||||
	#region Test Build
 | 
			
		||||
	write-host "`n`nBuilding Test`n"
 | 
			
		||||
 | 
			
		||||
	$path_test       = Join-Path $path_root test
 | 
			
		||||
	$path_gen        = Join-Path $path_test gen
 | 
			
		||||
	$path_test_build = Join-Path $path_test build
 | 
			
		||||
	$path_gen_build  = Join-Path $path_gen  build
 | 
			
		||||
 | 
			
		||||
	# Generate files using metaprogram.
 | 
			
		||||
	if ( -not( Test-Path $path_gen_build ) )
 | 
			
		||||
	{
 | 
			
		||||
		$args_meson  = @()
 | 
			
		||||
		$args_meson += "setup"
 | 
			
		||||
		$args_meson += $path_gen_build
 | 
			
		||||
 | 
			
		||||
		Push-Location $path_gen
 | 
			
		||||
		& meson $args_meson
 | 
			
		||||
		Pop-Location
 | 
			
		||||
	}
 | 
			
		||||
	& meson $args_meson
 | 
			
		||||
Pop-Location
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# Compile meta-program
 | 
			
		||||
Push-Location $path_root
 | 
			
		||||
	$args_ninja = @()
 | 
			
		||||
	$args_ninja += "-C"
 | 
			
		||||
	$args_ninja += $path_gen_build
 | 
			
		||||
 | 
			
		||||
	Push-Location $path_root
 | 
			
		||||
	& ninja $args_ninja
 | 
			
		||||
	Pop-Location
 | 
			
		||||
Pop-Location
 | 
			
		||||
 | 
			
		||||
	# Test NonParsed
 | 
			
		||||
	if ($true) {
 | 
			
		||||
Push-location $path_gen
 | 
			
		||||
# Run meta-program
 | 
			
		||||
	$gencpp = Join-Path $path_gen_build gencpp.exe
 | 
			
		||||
 | 
			
		||||
	Push-location $path_gen
 | 
			
		||||
 | 
			
		||||
	Write-Host `nGenerating files...
 | 
			
		||||
	Write-Host `nGenerating files -- Parsed...
 | 
			
		||||
	& $gencpp
 | 
			
		||||
 | 
			
		||||
# Format generated files
 | 
			
		||||
	Write-Host `nBeginning format...
 | 
			
		||||
	$formatParams = @(
 | 
			
		||||
		'-i'          # In-place
 | 
			
		||||
@@ -72,60 +66,30 @@ $path_scripts = Join-Path $path_root scripts
 | 
			
		||||
 | 
			
		||||
	clang-format $formatParams $targetFiles
 | 
			
		||||
	Write-Host "`nFormatting complete"
 | 
			
		||||
	Pop-Location
 | 
			
		||||
	}
 | 
			
		||||
Pop-Location
 | 
			
		||||
 | 
			
		||||
	# Test Parsed
 | 
			
		||||
	if ($true) {
 | 
			
		||||
	$gencpp = Join-Path $path_gen_build gencpp_parsed.exe
 | 
			
		||||
# Build the program depending on generated files.
 | 
			
		||||
if ( -not( Test-Path $path_test_build ) )
 | 
			
		||||
{
 | 
			
		||||
Push-Location $path_test
 | 
			
		||||
	$args_meson = @()
 | 
			
		||||
	$args_meson += "setup"
 | 
			
		||||
	$args_meson += $path_test_build
 | 
			
		||||
 | 
			
		||||
	Push-location $path_gen
 | 
			
		||||
# 	& meson $args_meson
 | 
			
		||||
Pop-Location
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
	Write-Host `nGenerating files -- using Parse API...
 | 
			
		||||
	& $gencpp
 | 
			
		||||
Push-Location $path_root
 | 
			
		||||
	$args_ninja = @()
 | 
			
		||||
	$args_ninja += "-C"
 | 
			
		||||
	$args_ninja += $path_test_build
 | 
			
		||||
 | 
			
		||||
	Write-Host `nBeginning format...
 | 
			
		||||
	$formatParams = @(
 | 
			
		||||
		'-i'          # In-place
 | 
			
		||||
		'-style=file' # Search for a .clang-format file in the parent directory of the source file.
 | 
			
		||||
		'-verbose'
 | 
			
		||||
	)
 | 
			
		||||
 | 
			
		||||
	$include = @('*.gen.hpp', '*.gen.cpp')
 | 
			
		||||
	$exclude = $null
 | 
			
		||||
 | 
			
		||||
	$targetFiles = @(Get-ChildItem -Recurse -Path $path_gen -Include $include -Exclude $exclude | Select-Object -ExpandProperty FullName)
 | 
			
		||||
 | 
			
		||||
	clang-format $formatParams $targetFiles
 | 
			
		||||
	Write-Host "`nFormatting complete"
 | 
			
		||||
	Pop-Location
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	# Build the program depending on generated files.
 | 
			
		||||
	# if ( -not( Test-Path $path_test_build ) )k
 | 
			
		||||
	# {
 | 
			
		||||
	# 	$args_meson = @()
 | 
			
		||||
	# 	$args_meson += "setup"
 | 
			
		||||
	# 	$args_meson += $path_test_build
 | 
			
		||||
 | 
			
		||||
	# 	Push-Location $path_test
 | 
			
		||||
	# 	& meson $args_meson
 | 
			
		||||
	# 	Pop-Location
 | 
			
		||||
	# }
 | 
			
		||||
 | 
			
		||||
	# $args_ninja = @()
 | 
			
		||||
	# $args_ninja += "-C"
 | 
			
		||||
	# $args_ninja += $path_test_build
 | 
			
		||||
 | 
			
		||||
	# Push-Location $path_root
 | 
			
		||||
	# ninja $args_ninja
 | 
			
		||||
	# Pop-Location
 | 
			
		||||
Pop-Location
 | 
			
		||||
 | 
			
		||||
	# $testcpp = Join-Path $path_test_build testcpp.exe
 | 
			
		||||
Push-Location $path_test
 | 
			
		||||
	$testcpp = Join-Path $path_test_build testcpp.exe
 | 
			
		||||
 | 
			
		||||
	# Push-Location $path_test
 | 
			
		||||
	# & $testcpp
 | 
			
		||||
	# Pop-Location
 | 
			
		||||
	# endregion Test Build
 | 
			
		||||
# }
 | 
			
		||||
Pop-Location
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user