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
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ set(CMAKE_CXX_STANDARD 11)

option(RUNCPP2_UPDATE_DEFAULT_YAMLS "Update default yaml files" OFF)

set(RUNCPP2_CONFIG_VERSION "2")
set(RUNCPP2_CONFIG_VERSION "3")

if (CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR)
option(RUNCPP2_WARNINGS_AS_ERRORS "Treat warnings as errors" ON)
Expand Down
19 changes: 12 additions & 7 deletions DefaultYAMLs/Default/CommonFileTypes.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
# DO NOT modify this file. Changes will be overwritten when there's a reset or update

# TODO: Make this arrays?...
FilesTypes:
# The file properties for the files to be **linked** as object file for each platform
ObjectLinkFile:
Expand All @@ -11,7 +12,7 @@ FilesTypes:
# The file properties for the files to be **linked** as shared libraries for each platform
SharedLinkFile:
Prefix:
Windows: ""
DefaultPlatform: ""
Linux: "lib"
MacOS: "lib"
Extension:
Expand All @@ -21,27 +22,31 @@ FilesTypes:
# The file properties for the files to be **copied** as shared libraries for each platform
SharedLibraryFile:
Prefix:
Windows: ""
DefaultPlatform: ""
Linux: "lib"
MacOS: ""
Extension:
Windows: ".dll"
Linux: ".so"
MacOS: ".dylib"
# The file properties for the files to be linked as static libraries for each platform
StaticLinkFile:
Prefix:
DefaultPlatform: ""
Unix: "lib"
Windows: ""
Extension:
Windows: ".lib"
Unix: ".a"
# The file properties for the files to be **copied** as executable for each platform
ExecutableFile:
Prefix:
DefaultPlatform: ""
Extension:
DefaultPlatform: ""
Windows: ".exe"
# (Optional) The file properties for debug symbols to be copied alongside the binary
# for each platform
# for each platform
DebugSymbolFile:
Prefix:
Windows: ""
Unix: ""
Extension:
Windows: ".pdb"
Unix: ""
43 changes: 32 additions & 11 deletions DefaultYAMLs/Default/g++.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -50,11 +50,13 @@ Compiler:
# {Stage.SharedLinkFile.Prefix}
# {Stage.StaticLinkFile.Prefix}
# {Stage.ObjectLinkFile.Prefix}
# {Stage.ExecutableFile.Prefix}
# {Stage.DebugSymbolFile.Prefix}
# {Stage.SharedLibraryFile.Extension}
# {Stage.SharedLinkFile.Extension}
# {Stage.StaticLinkFile.Extension}
# {Stage.ObjectLinkFile.Extension}
# {Stage.ExecutableFile.Extension}
# {Stage.DebugSymbolFile.Extension}
# {/}: Filesystem separator for the host platform

Expand Down Expand Up @@ -104,11 +106,14 @@ Compiler:
- Type: Repeats
CommandPart: " -I\"{Stage.IncludeDirectory.Source.Path}\""
- Type: Once
CommandPart: " \"{Stage.Input.Path}\" -o \"{Stage.Output.Directory}{/}{Stage.ObjectLinkFile.Prefix}{Stage.Input.Name}{Stage.ObjectLinkFile.Extension}\""
CommandPart: " \"{Stage.Input.Path}\" -o \"{Stage.Output.Directory}{/}\
{Stage.ObjectLinkFile.Prefix}{Stage.Input.Name}\
{Stage.ObjectLinkFile.Extension}\""

# What files to be expected as output for the command
ExpectedOutputFiles: &g++_CompileExpectedOutputFiles
- "{Stage.Output.Directory}{/}{Stage.ObjectLinkFile.Prefix}{Stage.Input.Name}{Stage.ObjectLinkFile.Extension}"
- "{Stage.Output.Directory}{/}{Stage.ObjectLinkFile.Prefix}{Stage.Input.Name}\
{Stage.ObjectLinkFile.Extension}"

# (Optional) The commands to run in **shell** BEFORE compiling
# This is run inside the .runcpp2 directory where the build happens.
Expand Down Expand Up @@ -154,11 +159,13 @@ Linker:
# {Stage.SharedLinkFile.Prefix}
# {Stage.StaticLinkFile.Prefix}
# {Stage.ObjectLinkFile.Prefix}
# {Stage.ExecutableFile.Prefix}
# {Stage.DebugSymbolFile.Prefix}
# {Stage.SharedLibraryFile.Extension}
# {Stage.SharedLinkFile.Extension}
# {Stage.StaticLinkFile.Extension}
# {Stage.ObjectLinkFile.Extension}
# {Stage.ExecutableFile.Extension}
# {Stage.DebugSymbolFile.Extension}
# {/}: Filesystem separator for the host platform

Expand Down Expand Up @@ -217,7 +224,8 @@ Linker:
Executable: "g++"
RunParts:
- Type: Once
CommandPart: "{Stage.Executable} {Stage.LinkFlags} -o \"{Stage.Output.Directory}{/}{Stage.Output.Name}\""
CommandPart: "{Stage.Executable} {Stage.LinkFlags} -o \"{Stage.Output.Directory}\
{/}{Stage.Output.Name}\""
- Type: Repeats
CommandPart: " \"{Stage.Input.Path}\""
ExpectedOutputFiles: ["{Stage.Output.Directory}{/}{Stage.Output.Name}"]
Expand All @@ -228,10 +236,12 @@ Linker:
Executable: "g++"
RunParts:
- Type: Once
CommandPart: "{Stage.Executable} {Stage.LinkFlags} -o \"{Stage.Output.Directory}{/}{Stage.Output.Name}.exe\""
CommandPart: "{Stage.Executable} {Stage.LinkFlags} -o \"{Stage.Output.Directory}\
{/}{Stage.Output.Name}{Stage.ExecutableFile.Extension}\""
- Type: Repeats
CommandPart: " \"{Stage.Input.Path}\""
ExpectedOutputFiles: ["{Stage.Output.Directory}{/}{Stage.Output.Name}.exe"]
ExpectedOutputFiles:
- "{Stage.Output.Directory}{/}{Stage.Output.Name}{Stage.ExecutableFile.Extension}"
# Setup: []
# Cleanup: []
ExecutableShared:
Expand All @@ -240,10 +250,14 @@ Linker:
Executable: "g++"
RunParts:
- Type: Once
CommandPart: "{Stage.Executable} {Stage.LinkFlags} -o \"{Stage.Output.Directory}{/}{Stage.SharedLibraryFile.Prefix}{Stage.Output.Name}{Stage.SharedLibraryFile.Extension}\""
CommandPart: "{Stage.Executable} {Stage.LinkFlags} -o \"{Stage.Output.Directory}\
{/}{Stage.SharedLibraryFile.Prefix}{Stage.Output.Name}\
{Stage.SharedLibraryFile.Extension}\""
- Type: Repeats
CommandPart: " \"{Stage.Input.Path}\""
ExpectedOutputFiles: ["{Stage.Output.Directory}{/}{Stage.SharedLibraryFile.Prefix}{Stage.Output.Name}{Stage.SharedLibraryFile.Extension}"]
ExpectedOutputFiles:
- "{Stage.Output.Directory}{/}{Stage.SharedLibraryFile.Prefix}{Stage.Output.Name}\
{Stage.SharedLibraryFile.Extension}"
# Setup: []
# Cleanup: []
Static:
Expand All @@ -252,10 +266,13 @@ Linker:
Executable: "g++"
RunParts:
- Type: Once
CommandPart: "{Stage.Executable} {Stage.LinkFlags} -o \"{Stage.Output.Directory}{/}{Stage.StaticLinkFile.Prefix}{Stage.Output.Name}{Stage.StaticLinkFile.Extension}\""
CommandPart: "{Stage.Executable} {Stage.LinkFlags} -o \"{Stage.Output.Directory}\
{/}{Stage.StaticLinkFile.Prefix}{Stage.Output.Name}{Stage.StaticLinkFile.Extension}\""
- Type: Repeats
CommandPart: " \"{Stage.Input.Path}\""
ExpectedOutputFiles: ["{Stage.Output.Directory}{/}{Stage.StaticLinkFile.Prefix}{Stage.Output.Name}{Stage.StaticLinkFile.Extension}"]
ExpectedOutputFiles:
- "{Stage.Output.Directory}{/}{Stage.StaticLinkFile.Prefix}{Stage.Output.Name}\
{Stage.StaticLinkFile.Extension}"
# Setup: []
# Cleanup: []
Shared:
Expand All @@ -264,9 +281,13 @@ Linker:
Executable: "g++"
RunParts:
- Type: Once
CommandPart: "{Stage.Executable} {Stage.LinkFlags} -o \"{Stage.Output.Directory}{/}{Stage.SharedLibraryFile.Prefix}{Stage.Output.Name}{Stage.SharedLibraryFile.Extension}\""
CommandPart: "{Stage.Executable} {Stage.LinkFlags} -o \"{Stage.Output.Directory}\
{/}{Stage.SharedLibraryFile.Prefix}{Stage.Output.Name}\
{Stage.SharedLibraryFile.Extension}\""
- Type: Repeats
CommandPart: " \"{Stage.Input.Path}\""
ExpectedOutputFiles: ["{Stage.Output.Directory}{/}{Stage.SharedLibraryFile.Prefix}{Stage.Output.Name}{Stage.SharedLibraryFile.Extension}"]
ExpectedOutputFiles:
- "{Stage.Output.Directory}{/}{Stage.SharedLibraryFile.Prefix}{Stage.Output.Name}\
{Stage.SharedLibraryFile.Extension}"
# Setup: []
# Cleanup: []
66 changes: 40 additions & 26 deletions DefaultYAMLs/Default/vs2022_v17+.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@
# List of YAML anchors that will be aliased later. `Template` is **NOT** part of a profile
Templates:
vs2022_v17+_CompileFlags: &vs2022_v17+_CompileFlags
Flags: "/nologo /W4 /diagnostics:caret /utf-8 /Gm- /MDd /EHar /TP /std:c++17 /GR /RTC1 /Zc:inline /Zi /external:W0"
Flags: "/nologo /W4 /diagnostics:caret /utf-8 /Gm- /MDd /EHar /TP /std:c++17 /GR /RTC1 \
/Zc:inline /Zi /external:W0"

# https://learn.microsoft.com/en-us/cpp/overview/compiler-versions?view=msvc-170
Name: "vs2022_v17+"
Expand Down Expand Up @@ -42,12 +43,15 @@ Compiler:
- Type: Repeats
CommandPart: " /I\"{Stage.IncludeDirectory.Source.Path}\""
- Type: Once
CommandPart: " /Fo\"{Stage.Output.Directory}{/}{Stage.ObjectLinkFile.Prefix}{Stage.Input.Name}{Stage.ObjectLinkFile.Extension}\" \
/Fd\"{Stage.Output.Directory}{/}{Stage.DebugSymbolFile.Prefix}{Stage.Input.Name}{Stage.DebugSymbolFile.Extension}\" \
\"{Stage.Input.Path}\""
CommandPart: " /Fo\"{Stage.Output.Directory}{/}{Stage.ObjectLinkFile.Prefix}\
{Stage.Input.Name}{Stage.ObjectLinkFile.Extension}\" \
/Fd\"{Stage.Output.Directory}{/}{Stage.DebugSymbolFile.Prefix}\
{Stage.Input.Name}{Stage.DebugSymbolFile.Extension}\" \"{Stage.Input.Path}\""
ExpectedOutputFiles: &vs2022_v17+_CompileExpectedOutputFiles
- "{Stage.Output.Directory}{/}{Stage.ObjectLinkFile.Prefix}{Stage.Input.Name}{Stage.ObjectLinkFile.Extension}"
- "{Stage.Output.Directory}{/}{Stage.DebugSymbolFile.Prefix}{Stage.Input.Name}{Stage.DebugSymbolFile.Extension}"
- "{Stage.Output.Directory}{/}{Stage.ObjectLinkFile.Prefix}{Stage.Input.Name}\
{Stage.ObjectLinkFile.Extension}"
- "{Stage.Output.Directory}{/}{Stage.DebugSymbolFile.Prefix}{Stage.Input.Name}\
{Stage.DebugSymbolFile.Extension}"
ExecutableShared:
Windows:
<<: *vs2022_v17+_CompileFlags
Expand Down Expand Up @@ -81,12 +85,13 @@ Linker:
Executable: "link.exe"
RunParts:
- Type: Once
CommandPart: >-
{Stage.Executable} {Stage.LinkFlags}
/OUT:"{Stage.Output.Directory}{/}{Stage.Output.Name}.exe"
CommandPart: "{Stage.Executable} {Stage.LinkFlags} \
/OUT:\"{Stage.Output.Directory}{/}{Stage.Output.Name}\
{Stage.ExecutableFile.Extension}\""
- Type: Repeats
CommandPart: " \"{Stage.Input.Path}\""
ExpectedOutputFiles: ["{Stage.Output.Directory}{/}{Stage.Output.Name}.exe"]
ExpectedOutputFiles:
- "{Stage.Output.Directory}{/}{Stage.Output.Name}{Stage.ExecutableFile.Extension}"
ExecutableShared:
Windows:
Flags: >-
Expand All @@ -96,14 +101,17 @@ Linker:
Executable: "link.exe"
RunParts:
- Type: Once
CommandPart: >-
{Stage.Executable} {Stage.LinkFlags}
/OUT:"{Stage.Output.Directory}{/}{Stage.SharedLibraryFile.Prefix}{Stage.Output.Name}{Stage.SharedLibraryFile.Extension}"
/IMPLIB:"{Stage.Output.Directory}{/}{Stage.SharedLinkFile.Prefix}{Stage.Output.Name}{Stage.SharedLinkFile.Extension}"
/DEF:".\temp.def"
CommandPart: "{Stage.Executable} {Stage.LinkFlags} \
/OUT:\"{Stage.Output.Directory}{/}{Stage.SharedLibraryFile.Prefix}\
{Stage.Output.Name}{Stage.SharedLibraryFile.Extension}\" \
/IMPLIB:\"{Stage.Output.Directory}{/}{Stage.SharedLinkFile.Prefix}\
{Stage.Output.Name}{Stage.SharedLinkFile.Extension}\" \
/DEF:\".\\temp.def\""
- Type: Repeats
CommandPart: " \"{Stage.Input.Path}\""
ExpectedOutputFiles: ["{Stage.Output.Directory}{/}{Stage.SharedLibraryFile.Prefix}{Stage.Output.Name}{Stage.SharedLibraryFile.Extension}"]
ExpectedOutputFiles:
- "{Stage.Output.Directory}{/}{Stage.SharedLibraryFile.Prefix}{Stage.Output.Name}\
{Stage.SharedLibraryFile.Extension}"
Setup: [ "echo EXPORTS > .\\temp.def", "echo. main @1 >> .\\temp.def" ]
Cleanup: [ "del .\\temp.def" ]
Static:
Expand All @@ -112,13 +120,16 @@ Linker:
Executable: "lib.exe"
RunParts:
- Type: Once
CommandPart: >-
{Stage.Executable} {Stage.LinkFlags}
/OUT:"{Stage.Output.Directory}{/}{Stage.StaticLinkFile.Prefix}{Stage.Output.Name}{Stage.StaticLinkFile.Extension}"
/IMPLIB:"{Stage.Output.Directory}{/}{Stage.SharedLinkFile.Prefix}{Stage.Output.Name}{Stage.SharedLinkFile.Extension}"
CommandPart: "{Stage.Executable} {Stage.LinkFlags} \
/OUT:\"{Stage.Output.Directory}{/}{Stage.StaticLinkFile.Prefix}\
{Stage.Output.Name}{Stage.StaticLinkFile.Extension}\" \
/IMPLIB:\"{Stage.Output.Directory}{/}{Stage.SharedLinkFile.Prefix}\
{Stage.Output.Name}{Stage.SharedLinkFile.Extension}\""
- Type: Repeats
CommandPart: " \"{Stage.Input.Path}\""
ExpectedOutputFiles: ["{Stage.Output.Directory}{/}{Stage.StaticLinkFile.Prefix}{Stage.Output.Name}{Stage.StaticLinkFile.Extension}"]
ExpectedOutputFiles:
- "{Stage.Output.Directory}{/}{Stage.StaticLinkFile.Prefix}{Stage.Output.Name}\
{Stage.StaticLinkFile.Extension}"
Shared:
Windows:
Flags: >-
Expand All @@ -128,10 +139,13 @@ Linker:
Executable: "link.exe"
RunParts:
- Type: Once
CommandPart: >-
{Stage.Executable} {Stage.LinkFlags}
/OUT:"{Stage.Output.Directory}{/}{Stage.SharedLibraryFile.Prefix}{Stage.Output.Name}{Stage.SharedLibraryFile.Extension}"
/IMPLIB:"{Stage.Output.Directory}{/}{Stage.SharedLinkFile.Prefix}{Stage.Output.Name}{Stage.SharedLinkFile.Extension}"
CommandPart: "{Stage.Executable} {Stage.LinkFlags} \
/OUT:\"{Stage.Output.Directory}{/}{Stage.SharedLibraryFile.Prefix}\
{Stage.Output.Name}{Stage.SharedLibraryFile.Extension}\" \
/IMPLIB:\"{Stage.Output.Directory}{/}{Stage.SharedLinkFile.Prefix}\
{Stage.Output.Name}{Stage.SharedLinkFile.Extension}\""
- Type: Repeats
CommandPart: " \"{Stage.Input.Path}\""
ExpectedOutputFiles: ["{Stage.Output.Directory}{/}{Stage.SharedLibraryFile.Prefix}{Stage.Output.Name}{Stage.SharedLibraryFile.Extension}"]
ExpectedOutputFiles:
- "{Stage.Output.Directory}{/}{Stage.SharedLibraryFile.Prefix}{Stage.Output.Name}\
{Stage.SharedLibraryFile.Extension}"
3 changes: 3 additions & 0 deletions Src/Tests/ConfigParsingTest.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -166,6 +166,7 @@ DS::Result<void> TestMain()
SharedLinkFile: *PrefixExtensionTemplate
SharedLibraryFile: *PrefixExtensionTemplate
StaticLinkFile: *PrefixExtensionTemplate
ExecutableFile: *PrefixExtensionTemplate
DebugSymbolFile: *PrefixExtensionTemplate
Compiler:
CheckExistence:
Expand Down Expand Up @@ -356,6 +357,7 @@ DS::Result<void> TestMain()
SharedLinkFile: *PrefixExtensionTemplate
SharedLibraryFile: *PrefixExtensionTemplate
StaticLinkFile: *PrefixExtensionTemplate
ExecutableFile: *PrefixExtensionTemplate
DebugSymbolFile: *PrefixExtensionTemplate
Compiler:
CheckExistence:
Expand Down Expand Up @@ -414,6 +416,7 @@ DS::Result<void> TestMain()
SharedLinkFile: *PrefixExtensionTemplate
SharedLibraryFile: *PrefixExtensionTemplate
StaticLinkFile: *PrefixExtensionTemplate
ExecutableFile: *PrefixExtensionTemplate
DebugSymbolFile: *PrefixExtensionTemplate
)";

Expand Down
14 changes: 14 additions & 0 deletions Src/Tests/Data/ProfileTest.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,13 @@ DS::Result<void> TestMain()
Extension:
Windows: ".lib"
Unix: ".a"
ExecutableFile:
Prefix:
Unix: ""
Windows: ""
Extension:
Windows: ".exe"
Unix: ""
DebugSymbolFile:
Prefix:
Windows: ""
Expand Down Expand Up @@ -329,6 +336,13 @@ DS::Result<void> TestMain()
DefaultPlatform: "lib"
Extension:
DefaultPlatform: ".a"
ExecutableFile:
Prefix:
Unix: ""
Windows: ""
Extension:
Windows: ".exe"
Unix: ""
Compiler:
CheckExistence:
DefaultPlatform: "g++ -v"
Expand Down
Loading