mirror of
https://github.com/Ed94/gencpp.git
synced 2025-06-14 18:51:47 -07:00
Iniital commit
This commit is contained in:
114
scripts/build.ci.ps1
Normal file
114
scripts/build.ci.ps1
Normal file
@ -0,0 +1,114 @@
|
||||
[string] $type = $null
|
||||
[string] $test = $false
|
||||
|
||||
foreach ( $arg in $args )
|
||||
{
|
||||
if ( $arg -eq "test" )
|
||||
{
|
||||
$test = $true
|
||||
}
|
||||
else
|
||||
{
|
||||
$type = $arg
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if ($false)
|
||||
{
|
||||
#region Regular Build
|
||||
write-host "Building project`n"
|
||||
|
||||
$path_root = git rev-parse --show-toplevel
|
||||
$path_build = Join-Path $path_root build
|
||||
$path_scripts = Join-Path $path_root scripts
|
||||
|
||||
|
||||
if ( -not( Test-Path $path_build ) )
|
||||
{
|
||||
$args_meson = @()
|
||||
$args_meson += "setup"
|
||||
$args_meson += $path_build
|
||||
|
||||
# Start-Process meson $args_meson -NoNewWindow -Wait -WorkingDirectory $path_scripts
|
||||
Push-Location $path_scripts
|
||||
Invoke-Expression "& meson $args_meson"
|
||||
Pop-Location
|
||||
}
|
||||
|
||||
if ( $type )
|
||||
{
|
||||
$args_meson = @()
|
||||
$args_meson += "configure"
|
||||
$args_meson += $path_build
|
||||
$args_meson += "--buildtype $($type)"
|
||||
|
||||
# Start-Process meson $args_meson -NoNewWindow -Wait -WorkingDirectory $path_scripts
|
||||
Push-Location $path_scripts
|
||||
Invoke-Expression "& meson $args_meson"
|
||||
Pop-Location
|
||||
}
|
||||
|
||||
$args_ninja = @()
|
||||
$args_ninja += "-C"
|
||||
$args_ninja += $path_build
|
||||
|
||||
Push-Location $path_root
|
||||
ninja $args_ninja
|
||||
Pop-Location
|
||||
#endregion Regular 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
|
||||
}
|
||||
|
||||
$args_ninja = @()
|
||||
$args_ninja += "-C"
|
||||
$args_ninja += $path_gen_build
|
||||
|
||||
Push-Location $path_root
|
||||
ninja $args_ninja
|
||||
Pop-Location
|
||||
|
||||
|
||||
# Build the program depending on generated files.
|
||||
# if ( -not( Test-Path $path_test_build ) )
|
||||
# {
|
||||
# $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
|
||||
#endregion Test Build
|
||||
# }
|
2
scripts/build.ps1
Normal file
2
scripts/build.ps1
Normal file
@ -0,0 +1,2 @@
|
||||
cls
|
||||
Invoke-Expression "& $(Join-Path $PSScriptRoot 'build.ci.ps1') $args"
|
24
scripts/clean.ps1
Normal file
24
scripts/clean.ps1
Normal file
@ -0,0 +1,24 @@
|
||||
$path_root = git rev-parse --show-toplevel
|
||||
$path_build = Join-Path $path_root build
|
||||
$path_test = Join-Path $path_root test
|
||||
$path_test_build = Join-Path $path_test build
|
||||
|
||||
if ( Test-Path $path_build )
|
||||
{
|
||||
Remove-Item $path_build -Recurse
|
||||
}
|
||||
|
||||
if ( Test-Path $path_test_build )
|
||||
{
|
||||
Remove-Item $path_test_build -Recurse
|
||||
}
|
||||
|
||||
# [string[]] $include = '*.h', '*.hpp', '*.cpp'
|
||||
# [string[]] $exclude =
|
||||
|
||||
# $files = Get-ChildItem -Recurse -Path $path_test -Include $include -Exclude $exclude
|
||||
|
||||
# if ( $files )
|
||||
# {
|
||||
# Remove-Item $files
|
||||
# }
|
12
scripts/get_sources.ps1
Normal file
12
scripts/get_sources.ps1
Normal file
@ -0,0 +1,12 @@
|
||||
[string[]] $include = 'gen.cpp' #'*.c', '*.cc', '*.cpp'
|
||||
# [string[]] $exclude =
|
||||
|
||||
$path_root = git rev-parse --show-toplevel
|
||||
$path_proj = Join-Path $path_root project
|
||||
|
||||
$files = Get-ChildItem -Recurse -Path $path_proj -Include $include -Exclude $exclude
|
||||
|
||||
$sources = $files | Select-Object -ExpandProperty FullName | Resolve-Path -Relative
|
||||
$sources = $sources.Replace( '\', '/' )
|
||||
|
||||
return $sources
|
19
scripts/meson.build
Normal file
19
scripts/meson.build
Normal file
@ -0,0 +1,19 @@
|
||||
project( 'refactor', 'c', 'cpp', default_options : ['buildtype=release'] )
|
||||
|
||||
# add_global_arguments('-E', language : 'cpp')
|
||||
|
||||
includes = include_directories(
|
||||
[ '../project'
|
||||
, '../thirdparty'
|
||||
])
|
||||
|
||||
get_sources = files('./get_sources.ps1')
|
||||
sources = files(run_command('powershell', get_sources, check: true).stdout().strip().split('\n'))
|
||||
|
||||
if get_option('buildtype').startswith('debug')
|
||||
|
||||
add_project_arguments('-DBuild_Debug', language : ['c', 'cpp'])
|
||||
|
||||
endif
|
||||
|
||||
executable( 'refactor', sources, include_directories : includes )
|
Reference in New Issue
Block a user