From db37475441cc5953f1a7e0338b22b43b0fe163cb Mon Sep 17 00:00:00 2001 From: Mikhail Date: Wed, 28 May 2025 23:39:52 +0300 Subject: [PATCH] Initial release --- UpdateCMakeList.ps1 | 56 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 UpdateCMakeList.ps1 diff --git a/UpdateCMakeList.ps1 b/UpdateCMakeList.ps1 new file mode 100644 index 0000000..e13f392 --- /dev/null +++ b/UpdateCMakeList.ps1 @@ -0,0 +1,56 @@ + +$Template = "" +$IncDirs = [System.Collections.Hashtable]::new() +$files = Get-ChildItem -Path $PSScriptRoot/../../Library -Recurse -Include '*.h' #-Name + +/cmake/stm32cubemx + +Write-Output "" | Out-File -FilePath $PSScriptRoot/../../cmake/stm32cubemx/CMakeLists.txt -Append -Encoding utf8 +Write-Output "" | Out-File -FilePath $PSScriptRoot/../../cmake/stm32cubemx/CMakeLists.txt -Append -Encoding utf8 +Write-Output "# Library folder" | Out-File -FilePath $PSScriptRoot/../../cmake/stm32cubemx/CMakeLists.txt -Append -Encoding utf8 +Write-Output "set(DS_Include_Dirs" | Out-File -FilePath $PSScriptRoot/../../cmake/stm32cubemx/CMakeLists.txt -Append -Encoding utf8 + +foreach($file in $files) +{ + try + { + $IncDirs.Add($file.DirectoryName, $file.DirectoryName) + } catch {} +} + +foreach($IncDir in $IncDirs.Values) +{ + $Template = $PSScriptRoot + $Template = $Template -replace "\\cmake\\stm32cubemx", '' + $Template = $Template -replace "\\", '/' + + $TempString = $IncDir -replace '\\', '/' + $TempString = $TempString -replace $Template, '' + $TempString = ' ${CMAKE_SOURCE_DIR}' + $TempString + Write-Output $TempString | Out-File -FilePath $PSScriptRoot/../../cmake/stm32cubemx/CMakeLists.txt -Append -Encoding utf8 +} + +Write-Output ')' | Out-File -FilePath $PSScriptRoot/../../cmake/stm32cubemx/CMakeLists.txt -Append -Encoding utf8 +Write-Output 'target_include_directories(stm32cubemx INTERFACE ${DS_Include_Dirs})' | Out-File -FilePath $PSScriptRoot/../../cmake/stm32cubemx/CMakeLists.txt -Append -Encoding utf8 +Write-Output '' | Out-File -FilePath $PSScriptRoot/../../cmake/stm32cubemx/CMakeLists.txt -Append -Encoding utf8 +Write-Output 'set(DS_Application_Src' | Out-File -FilePath $PSScriptRoot/../../cmake/stm32cubemx/CMakeLists.txt -Append -Encoding utf8 + + +$files = Get-ChildItem -Path $PSScriptRoot/../../Library -Recurse -Include '*.c' #-Name + +foreach($file in $files) +{ + $Template = $PSScriptRoot + $Template = $Template -replace "\\cmake\\stm32cubemx", '' + $Template = $Template -replace "\\", '/' + + $TempString = $file.FullName -replace '\\', '/' + $TempString = $TempString -replace $Template, '' + $TempString = ' ${CMAKE_SOURCE_DIR}' + $TempString + Write-Output $TempString | Out-File -FilePath $PSScriptRoot/../../cmake/stm32cubemx/CMakeLists.txt -Append -Encoding utf8 +} + +Write-Output ')' | Out-File -FilePath $PSScriptRoot/../../cmake/stm32cubemx/CMakeLists.txt -Append -Encoding utf8 +Write-Output 'target_sources(${CMAKE_PROJECT_NAME} PRIVATE ${DS_Application_Src})' | Out-File -FilePath $PSScriptRoot/../../cmake/stm32cubemx/CMakeLists.txt -Append -Encoding utf8 +Write-Output "" | Out-File -FilePath $PSScriptRoot/../../cmake/stm32cubemx/CMakeLists.txt -Append -Encoding utf8 +