Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -16,4 +16,5 @@
*.jpg -text
*.png -text
*.gif -text
*.ico -text
*.pdf -text
7 changes: 7 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,13 @@ versioned baseline.
VCL style, so a project of your own that runs its tests in the VCL GUI runner needs Carbon among
its custom styles (Project > Options > Application > Appearance) for it, and a `WinMain()` that
applies the saved theme as `vcl\gui\rad370\ASWUnitTests_VCL_GUI.cpp` does.
- An ASWUnitTests icon, `resource\ASWUnitTests.ico`, which this repository's console and GUI
runners now have on Windows, with the PNGs it's made from and `resource\make_icon.ps1`, which
draws them. `ASWUNITTESTS_WIN32_GUI_SOURCES` includes `resource\ASWUnitTests_Icon.rc`, so a Win32
GUI runner of your own built with CMake gets the icon too, in Explorer, its title bar and the
taskbar; to use your own, remove that script from the list (the README's "Win32 GUI Runner" shows
how) and name your icon `MAINICON`. `ASWUNITTESTS_RESOURCE_DIR` is the `resource` folder, which
`ASWUNITTESTS_WIN32_GUI_INCLUDE_DIRS` now includes.
- A `TCLIParser::ParseArguments()` overload that takes the arguments as a
`std::vector<std::string>`, the program name first, as in `argv`.
- `UTF8ToWide()` in `ASWUnitTests_Utils.h`, which converts UTF-8 to wide text (UTF-16 on Windows,
Expand Down
6 changes: 5 additions & 1 deletion Deploy.bat
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ if not exist "%TARGET_DIR%\." (
)
)

for %%D in (build cmake gui\src gui\tests rad370 src tests toTest vcl\console\rad370 vcl\gui\rad370 vcl\gui\src vcl\tests win32\gui\rad370 win32\gui\src win32\tests) do (
for %%D in (build cmake gui\src gui\tests rad370 resource src tests toTest vcl\console\rad370 vcl\gui\rad370 vcl\gui\src vcl\tests win32\gui\rad370 win32\gui\src win32\tests) do (
if not exist "%TARGET_DIR%\%%D\." (
echo Creating %%D folder...
mkdir "%TARGET_DIR%\%%D"
Expand Down Expand Up @@ -145,6 +145,10 @@ call :CopyFile "rad370\Build_Win32_Debug.bat" "rad370\Build_Win32_Debug.bat"
if errorlevel 1 exit /b 1
call :CopyFile "rad370\Build_Win32_Release.bat" "rad370\Build_Win32_Release.bat"
if errorlevel 1 exit /b 1
call :CopyFile "resource\ASWUnitTests.ico" "resource\ASWUnitTests.ico"
if errorlevel 1 exit /b 1
call :CopyFile "resource\ASWUnitTests_Icon.rc" "resource\ASWUnitTests_Icon.rc"
if errorlevel 1 exit /b 1
call :CopyFile "src\ASWUnitTests_CLI.cpp" "src\ASWUnitTests_CLI.cpp"
if errorlevel 1 exit /b 1
call :CopyFile "src\ASWUnitTests_CLI.h" "src\ASWUnitTests_CLI.h"
Expand Down
20 changes: 16 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -466,7 +466,9 @@ files in `gui\src` (shared by the GUI runners) and `vcl\gui\src`, including
a `WinMain()` modeled on `vcl\gui\rad370\ASWUnitTests_VCL_GUI.cpp`, which parses the command line,
applies the saved theme and starts the main form. For the dark theme, also add RAD Studio's Carbon
style to the application (Project > Options > Application > Appearance, which this repository's
project has as `Custom_Styles`); without it, Dark shows the light look.
project has as `Custom_Styles`); without it, Dark shows the light look. For the ASWUnitTests icon,
set the application's icon to `resource\ASWUnitTests.ico` there too, as this repository's project
does.

### Win32 GUI Runner

Expand All @@ -485,8 +487,9 @@ and its `Build_*.bat` scripts write the executable to `win32\gui\rad370\<Platfor
To run your own tests in it with CMake, include `win32\gui\src\ASWUnitTests_Win32GUI_Sources.cmake`
after `project()`. Its `ASWUNITTESTS_WIN32_GUI_SOURCES` lists the framework's `src` files except
`main.cpp`, the files in `gui\src` (shared by the GUI runners) and `win32\gui\src`, including the
runner's own `WinMain()`, and its manifest, and it exports the include path, libraries and linker
options they need:
runner's own `WinMain()`, its manifest, and `resource\ASWUnitTests_Icon.rc`, which gives the
executable the ASWUnitTests icon. It also exports the include path (which has the `resource` folder,
for the icon), libraries and linker options they need:

```cmake
include(third_party/asw-unit-tests/win32/gui/src/ASWUnitTests_Win32GUI_Sources.cmake)
Expand All @@ -511,13 +514,21 @@ Integration). With MinGW, also link its runtime statically
put its DLLs next to the executable, or the GUI may load another program's older `libstdc++-6.dll`
from `PATH` and fail to start.

For an icon of your own, remove the ASWUnitTests one from the list before `add_executable()`, and
add a resource script of your own whose icon is named `MAINICON`, which the window then shows:

```cmake
list(REMOVE_ITEM ASWUNITTESTS_WIN32_GUI_SOURCES "${ASWUNITTESTS_RESOURCE_DIR}/ASWUnitTests_Icon.rc")
```

With RAD Studio, the simplest start is a copy of `win32\gui\rad370\ASWUnitTests_Win32_GUI.cbproj`,
with its paths and test files changed. It's a C++ application with no framework
(`FrameworkType None`), with `TCHAR` mapped to `char`, since the runner's entry point is
`WinMain()`. It compiles the framework's `src` files except `main.cpp`, the files in `gui\src` and
`win32\gui\src`, with all three folders on the include path, and the test modules. Its manifest is
`win32\gui\src\ASWUnitTests_Win32GUI.manifest`, with DPI awareness set to None, so RAD Studio uses
the manifest as it is (the manifest declares per-monitor DPI awareness itself).
the manifest as it is (the manifest declares per-monitor DPI awareness itself). Its icon is
`resource\ASWUnitTests.ico`, which RAD Studio embeds as `MAINICON`.

## Registering Tests

Expand Down Expand Up @@ -1290,6 +1301,7 @@ my-project/
| +-- gui/src/ <- shared by the GUI runners, if you use one (never touched)
| +-- vcl/gui/src/ <- VCL GUI runner, if you use it (never touched)
| +-- win32/gui/src/ <- Win32 GUI runner, if you use it (never touched)
| +-- resource/ <- the ASWUnitTests icon, for a runner's executable (never touched)
| `-- cmake/, rad370/, tests/, toTest/, other vcl/ and win32/ folders <- this framework's own example build, unused by you
+-- tests/ <- your own test modules (Test_MyClass.cpp/.h), self-registered
`-- CMakeLists.txt / .cbproj <- your own build file, in your own repo
Expand Down
4 changes: 4 additions & 0 deletions cmake/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,10 @@ if(WIN32)
../win32/gui/src
../win32/tests
)

# The ASWUnitTests icon, which the resource compiler finds through the include path.
target_sources(ASWUnitTests PRIVATE ../resource/ASWUnitTests_Icon.rc)
target_include_directories(ASWUnitTests PRIVATE ../resource)
# CommandLineToArgvW(), used by src/ASWUnitTests_Utils.cpp and the Win32 GUI's units. MSVC and MinGW link
# shell32 by default; naming it doesn't depend on that.
target_link_libraries(ASWUnitTests PRIVATE shell32)
Expand Down
1 change: 1 addition & 0 deletions rad370/ASWUnitTests.cbproj
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@
<BCC_ExtendedErrorInfo>true</BCC_ExtendedErrorInfo>
<ILINK_TranslatedLibraryPath>$(BDSLIB)\$(PLATFORM)\release\$(LANGDIR);$(ILINK_TranslatedLibraryPath)</ILINK_TranslatedLibraryPath>
<ProjectType>CppConsoleApplication</ProjectType>
<Icon_MainIcon>..\resource\ASWUnitTests.ico</Icon_MainIcon>
<DCC_Namespace>System;Xml;Data;Datasnap;Web;Soap;$(DCC_Namespace)</DCC_Namespace>
<Multithreaded>true</Multithreaded>
<SanitizedProjectName>ASWUnitTests</SanitizedProjectName>
Expand Down
Binary file added resource/ASWUnitTests.ico
Binary file not shown.
27 changes: 27 additions & 0 deletions resource/ASWUnitTests_Icon.rc
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
/* **************************************************************************
ASWUnitTests_Icon.rc
Author: Anthony S. West - ASW Software

Embeds the ASWUnitTests icon in the CMake builds of the console runner and
the Win32 GUI runner (MSVC, MinGW and Clang). The RAD Studio projects embed
the same .ico themselves (Icon_MainIcon), also as MAINICON, which is the
name the Win32 GUI runner loads it by. The .ico is found through the
include path, which has this folder.

Copyright 2026 ASW Software

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

https://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

************************************************************************** */

MAINICON ICON "ASWUnitTests.ico"
Binary file added resource/icon_16.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added resource/icon_20.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added resource/icon_24.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added resource/icon_256.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added resource/icon_32.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added resource/icon_40.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added resource/icon_48.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added resource/icon_64.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
138 changes: 138 additions & 0 deletions resource/make_icon.ps1
Original file line number Diff line number Diff line change
@@ -0,0 +1,138 @@
# Draws the ASWUnitTests icon (a blue rounded badge with a green check mark and, from 32 px up, a green and red
# progress bar) at each icon size, and writes icon_<size>.png and ASWUnitTests.ico (BMP entries below 256 px, PNG
# at 256) beside this script, replacing them; the same drawing gives the same files. ImageMagick's magick packs
# the .ico, so it must be on the PATH. Also writes a preview sheet of every size on light and dark backgrounds to
# %TEMP%\ASWUnitTests_icon_preview.png.
# Usage (Windows PowerShell): & resource\make_icon.ps1
Add-Type -AssemblyName System.Drawing
$out = $PSScriptRoot

$sizes = 16, 20, 24, 32, 40, 48, 64, 256

function C([string]$hex) { return [System.Drawing.ColorTranslator]::FromHtml($hex) }
$blueTop = C '#2D66B5'
$blueBottom = C '#173B72'
$edge = C '#0E2850'
$green = C '#4BC55E'
$greenDark = C '#2E8F3E'
$red = C '#E5484D'
$track = C '#0E2850'

function RoundedRect([float]$x, [float]$y, [float]$w, [float]$h, [float]$r)
{
$p = New-Object System.Drawing.Drawing2D.GraphicsPath
$d = 2 * $r
$p.AddArc($x, $y, $d, $d, 180, 90)
$p.AddArc($x + $w - $d, $y, $d, $d, 270, 90)
$p.AddArc($x + $w - $d, $y + $h - $d, $d, $d, 0, 90)
$p.AddArc($x, $y + $h - $d, $d, $d, 90, 90)
$p.CloseFigure()
return $p
}

function Draw([int]$size)
{
$s = $size / 256.0
$bmp = New-Object System.Drawing.Bitmap($size, $size, [System.Drawing.Imaging.PixelFormat]::Format32bppArgb)
$g = [System.Drawing.Graphics]::FromImage($bmp)
$g.SmoothingMode = 'AntiAlias'
$g.PixelOffsetMode = 'HighQuality'
$g.Clear([System.Drawing.Color]::Transparent)

$withBar = ($size -ge 32)

# Badge: the full square at 16-24 px, so the check mark gets every pixel.
$margin = if ($size -lt 32) { 0 } else { [Math]::Floor(8 * $s) }
$radius = [Math]::Max(2.5, 44 * $s)
$side = $size - 2 * $margin
$badge = RoundedRect $margin $margin $side $side $radius
$bottom = $margin + $side
$brush = New-Object System.Drawing.Drawing2D.LinearGradientBrush(
(New-Object System.Drawing.PointF(0, $margin)), (New-Object System.Drawing.PointF(0, $bottom)),
$blueTop, $blueBottom)
$g.FillPath($brush, $badge)
if ($size -ge 48)
{
$pen = New-Object System.Drawing.Pen($edge, [Math]::Max(1, 4 * $s))
$g.DrawPath($pen, $badge)
}

# Check mark: thicker, relative to the size, when it's small.
if ($withBar)
{
$pts = @((64, 120), (108, 164), (194, 76)); $width = 36
}
else
{
$pts = @((54, 132), (104, 182), (204, 80)); $width = 48
}
$points = [System.Drawing.PointF[]]@($pts | ForEach-Object { New-Object System.Drawing.PointF(($_[0] * $s), ($_[1] * $s)) })
if ($size -ge 48)
{
# A darker green rim, for definition against the blue.
$rim = New-Object System.Drawing.Pen($greenDark, (($width + 8) * $s))
$rim.StartCap = 'Round'; $rim.EndCap = 'Round'; $rim.LineJoin = 'Round'
$g.DrawLines($rim, $points)
}
$checkPen = New-Object System.Drawing.Pen($green, ($width * $s))
$checkPen.StartCap = 'Round'; $checkPen.EndCap = 'Round'; $checkPen.LineJoin = 'Round'
$g.DrawLines($checkPen, $points)

# Progress bar: mostly green, ending red, as the GUI's shows passes and a failure.
if ($withBar)
{
$bx = 52 * $s; $bw = 152 * $s
$bh = [Math]::Max(3, 20 * $s); $by = 196 * $s
$br = $bh / 2
$g.FillPath((New-Object System.Drawing.SolidBrush($track)), (RoundedRect $bx $by $bw $bh $br))
$split = $bx + $bw * 0.72
$g.SetClip((New-Object System.Drawing.RectangleF($bx, $by, ($split - $bx), $bh)))
$g.FillPath((New-Object System.Drawing.SolidBrush($green)), (RoundedRect $bx $by $bw $bh $br))
$g.SetClip((New-Object System.Drawing.RectangleF($split, $by, ($bx + $bw - $split), $bh)))
$g.FillPath((New-Object System.Drawing.SolidBrush($red)), (RoundedRect $bx $by $bw $bh $br))
$g.ResetClip()
}

$g.Dispose()
$bmp.Save("$out\icon_$size.png", [System.Drawing.Imaging.ImageFormat]::Png)
return $bmp
}

$images = @{}
foreach ($size in $sizes) { $images[$size] = Draw $size }

# Preview sheet: each size at 1x on a light and a dark band, then 16-48 px magnified 6x on both, then 256 px.
$sheetW = 1400; $sheetH = 700
$sheet = New-Object System.Drawing.Bitmap($sheetW, $sheetH)
$g = [System.Drawing.Graphics]::FromImage($sheet)
$g.Clear((C '#FFFFFF'))
$g.FillRectangle((New-Object System.Drawing.SolidBrush((C '#F3F3F3'))), 0, 0, 700, 400)
$g.FillRectangle((New-Object System.Drawing.SolidBrush((C '#202020'))), 700, 0, 700, 400)
$x = 20
foreach ($size in 16, 20, 24, 32, 40, 48, 64)
{
$g.DrawImageUnscaled($images[$size], $x, 20)
$g.DrawImageUnscaled($images[$size], $x + 700, 20)
$x += $size + 20
}
$g.InterpolationMode = 'NearestNeighbor'
$g.PixelOffsetMode = 'Half'
$x = 20
foreach ($size in 16, 20, 24, 32)
{
$g.DrawImage($images[$size], $x, 110, $size * 6, $size * 6)
$g.DrawImage($images[$size], $x + 700, 110, $size * 6, $size * 6)
$x += $size * 6 + 16
}
$g.InterpolationMode = 'HighQualityBicubic'
$g.DrawImage($images[256], 20, 420, 256, 256)
$g.DrawImage($images[48], 300, 420, 288, 288)
$g.FillRectangle((New-Object System.Drawing.SolidBrush((C '#202020'))), 700, 400, 700, 300)
$g.DrawImage($images[256], 720, 420, 256, 256)
$g.Dispose()
$sheet.Save("$env:TEMP\ASWUnitTests_icon_preview.png", [System.Drawing.Imaging.ImageFormat]::Png)

$pngs = $sizes | ForEach-Object { "$out\icon_$_.png" }
& magick @pngs "$out\ASWUnitTests.ico"
& magick identify "$out\ASWUnitTests.ico"
"wrote the PNGs and ASWUnitTests.ico to $out, and the preview to $env:TEMP\ASWUnitTests_icon_preview.png"
1 change: 1 addition & 0 deletions vcl/console/rad370/ASWUnitTests_VCL_Console.cbproj
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@
<BCC_ExtendedErrorInfo>true</BCC_ExtendedErrorInfo>
<ILINK_TranslatedLibraryPath>$(BDSLIB)\$(PLATFORM)\release\$(LANGDIR);$(ILINK_TranslatedLibraryPath)</ILINK_TranslatedLibraryPath>
<ProjectType>CppConsoleApplication</ProjectType>
<Icon_MainIcon>..\..\..\resource\ASWUnitTests.ico</Icon_MainIcon>
<DCC_Namespace>System;Xml;Data;Datasnap;Web;Soap;Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;$(DCC_Namespace)</DCC_Namespace>
<AllPackageLibs>rtl.lib;vcl.lib</AllPackageLibs>
<Multithreaded>true</Multithreaded>
Expand Down
2 changes: 1 addition & 1 deletion vcl/gui/rad370/ASWUnitTests_VCL_GUI.cbproj
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@
<AllPackageLibs>rtl.lib;vcl.lib</AllPackageLibs>
<_TCHARMapping>wchar_t</_TCHARMapping>
<Multithreaded>true</Multithreaded>
<Icon_MainIcon>$(BDS)\bin\cbuilder_PROJECTICON.ico</Icon_MainIcon>
<Icon_MainIcon>..\..\..\resource\ASWUnitTests.ico</Icon_MainIcon>
<UWP_CppLogo44>$(BDS)\bin\Artwork\Windows\UWP\cppreg_UwpDefault_44.png</UWP_CppLogo44>
<UWP_CppLogo150>$(BDS)\bin\Artwork\Windows\UWP\cppreg_UwpDefault_150.png</UWP_CppLogo150>
<SanitizedProjectName>ASWUnitTests_VCL_GUI</SanitizedProjectName>
Expand Down
1 change: 1 addition & 0 deletions win32/gui/rad370/ASWUnitTests_Win32_GUI.cbproj
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@
<BCC_ExtendedErrorInfo>true</BCC_ExtendedErrorInfo>
<ILINK_TranslatedLibraryPath>$(BDSLIB)\$(PLATFORM)\release\$(LANGDIR);$(ILINK_TranslatedLibraryPath)</ILINK_TranslatedLibraryPath>
<ProjectType>CppVCLApplication</ProjectType>
<Icon_MainIcon>..\..\..\resource\ASWUnitTests.ico</Icon_MainIcon>
<DCC_Namespace>System;Xml;Data;Datasnap;Web;Soap;$(DCC_Namespace)</DCC_Namespace>
<Multithreaded>true</Multithreaded>
<SanitizedProjectName>ASWUnitTests_Win32_GUI</SanitizedProjectName>
Expand Down
2 changes: 2 additions & 0 deletions win32/gui/src/ASWUnitTests_Win32GUI_MainWindow.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -804,6 +804,8 @@ void TWin32GUIMainWindow::Create()
windowClass.cbSize = sizeof(windowClass);
windowClass.lpfnWndProc = &WindowProc;
windowClass.hInstance = instance;
// With no small icon given, Windows takes the title bar's from the same resource, at the size it needs.
windowClass.hIcon = MainIcon();
windowClass.hCursor = LoadCursorW(nullptr, MAKEINTRESOURCEW(32512)); // IDC_ARROW
windowClass.hbrBackground = reinterpret_cast<HBRUSH>(COLOR_BTNFACE + 1);
windowClass.lpszClassName = MainWindowClassName;
Expand Down
25 changes: 21 additions & 4 deletions win32/gui/src/ASWUnitTests_Win32GUI_Sources.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,21 @@
# ASWUNITTESTS_WIN32_GUI_SOURCES The framework's core sources (all
# but main.cpp), the GUI runners'
# shared core, this folder's units
# including WinMain, and the
# manifest: the .manifest file
# including WinMain, the
# manifest (the .manifest file
# itself for MSVC, or the resource
# script that embeds it for other
# compilers.
# compilers), and
# ASWUnitTests_Icon.rc, which
# embeds the ASWUnitTests icon. A
# project with an icon of its own
# removes that script from the list
# (see the usage below); the window
# shows its icon if it's named
# MAINICON.
# ASWUNITTESTS_WIN32_GUI_INCLUDE_DIRS Their directories, for the include
# path.
# path (the resource compiler finds
# the icon through it).
# ASWUNITTESTS_WIN32_GUI_LIBRARIES The Windows libraries it links.
# ASWUNITTESTS_WIN32_GUI_LINK_OPTIONS Linker options it needs: with MSVC,
# leaving the execution level to the
Expand All @@ -22,6 +30,8 @@
# or later, which gives its windows
# the same frame as other programs.
# ASWUNITTESTS_WIN32_GUI_SOURCE_DIR This folder.
# ASWUNITTESTS_RESOURCE_DIR The repository's resource folder,
# which has the icon.
#
# It includes src/ASWUnitTests_Sources.cmake and
# gui/src/ASWUnitTests_GUI_Sources.cmake, so their variables are also set.
Expand All @@ -38,11 +48,16 @@
# target_include_directories(MyTestsGUI PRIVATE ${ASWUNITTESTS_WIN32_GUI_INCLUDE_DIRS} tests)
# target_link_libraries(MyTestsGUI PRIVATE ${ASWUNITTESTS_WIN32_GUI_LIBRARIES})
# target_link_options(MyTestsGUI PRIVATE ${ASWUNITTESTS_WIN32_GUI_LINK_OPTIONS})
#
# To use an icon of your own instead, before add_executable():
#
# list(REMOVE_ITEM ASWUNITTESTS_WIN32_GUI_SOURCES "${ASWUNITTESTS_RESOURCE_DIR}/ASWUnitTests_Icon.rc")

include("${CMAKE_CURRENT_LIST_DIR}/../../../src/ASWUnitTests_Sources.cmake")
include("${CMAKE_CURRENT_LIST_DIR}/../../../gui/src/ASWUnitTests_GUI_Sources.cmake")

set(ASWUNITTESTS_WIN32_GUI_SOURCE_DIR "${CMAKE_CURRENT_LIST_DIR}")
get_filename_component(ASWUNITTESTS_RESOURCE_DIR "${CMAKE_CURRENT_LIST_DIR}/../../../resource" ABSOLUTE)

set(ASWUNITTESTS_WIN32_GUI_SOURCES
${ASWUNITTESTS_CORE_SOURCES}
Expand All @@ -56,12 +71,14 @@ set(ASWUNITTESTS_WIN32_GUI_SOURCES
"${ASWUNITTESTS_WIN32_GUI_SOURCE_DIR}/ASWUnitTests_Win32GUI_System.cpp"
"${ASWUNITTESTS_WIN32_GUI_SOURCE_DIR}/ASWUnitTests_Win32GUI_TextDialog.cpp"
"${ASWUNITTESTS_WIN32_GUI_SOURCE_DIR}/ASWUnitTests_Win32GUI_WinMain.cpp"
"${ASWUNITTESTS_RESOURCE_DIR}/ASWUnitTests_Icon.rc"
)

set(ASWUNITTESTS_WIN32_GUI_INCLUDE_DIRS
"${ASWUNITTESTS_SOURCE_DIR}"
"${ASWUNITTESTS_GUI_SOURCE_DIR}"
"${ASWUNITTESTS_WIN32_GUI_SOURCE_DIR}"
"${ASWUNITTESTS_RESOURCE_DIR}"
)

set(ASWUNITTESTS_WIN32_GUI_LIBRARIES
Expand Down
Loading
Loading