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
79 changes: 47 additions & 32 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -124,40 +124,40 @@ if(RUNCPP2_UPDATE_DEFAULT_YAMLS OR EMBEDDED_FILE_SIZE LESS 1024)
endif()

# =========================================================================
# runcpp2
# runcpp2 library
# =========================================================================

add_library(runcpp2 STATIC
"${CMAKE_CURRENT_LIST_DIR}/Src/runcpp2/Data/Profile.cpp"
"${CMAKE_CURRENT_LIST_DIR}/Src/runcpp2/Data/DependencyInfo.cpp"
"${CMAKE_CURRENT_LIST_DIR}/Src/runcpp2/Data/DependencyLinkProperty.cpp"
"${CMAKE_CURRENT_LIST_DIR}/Src/runcpp2/Data/DependencySource.cpp"
"${CMAKE_CURRENT_LIST_DIR}/Src/runcpp2/Data/GitSource.cpp"
"${CMAKE_CURRENT_LIST_DIR}/Src/runcpp2/Data/LocalSource.cpp"
"${CMAKE_CURRENT_LIST_DIR}/Src/runcpp2/Data/FileProperties.cpp"
"${CMAKE_CURRENT_LIST_DIR}/Src/runcpp2/Data/FlagsOverrideInfo.cpp"
"${CMAKE_CURRENT_LIST_DIR}/Src/runcpp2/Data/ProfilesCommands.cpp"
"${CMAKE_CURRENT_LIST_DIR}/Src/runcpp2/Data/ProfilesFlagsOverride.cpp"
"${CMAKE_CURRENT_LIST_DIR}/Src/runcpp2/Data/ScriptInfo.cpp"
"${CMAKE_CURRENT_LIST_DIR}/Src/runcpp2/Data/ProfilesProcessPaths.cpp"
"${CMAKE_CURRENT_LIST_DIR}/Src/runcpp2/Data/FilesTypesInfo.cpp"
"${CMAKE_CURRENT_LIST_DIR}/Src/runcpp2/Data/StageInfo.cpp"
"${CMAKE_CURRENT_LIST_DIR}/Src/runcpp2/Data/ProfilesDefines.cpp"
"${CMAKE_CURRENT_LIST_DIR}/Src/runcpp2/Data/FilesToCopyInfo.cpp"
"${CMAKE_CURRENT_LIST_DIR}/Src/runcpp2/Data/BuildTypeHelper.cpp"
"${CMAKE_CURRENT_LIST_DIR}/Src/runcpp2/ProfileHelper.cpp"
"${CMAKE_CURRENT_LIST_DIR}/Src/runcpp2/CompilingLinking.cpp"
"${CMAKE_CURRENT_LIST_DIR}/Src/runcpp2/ConfigParsing.cpp"
"${CMAKE_CURRENT_LIST_DIR}/Src/runcpp2/DefaultYAMLs.c"
"${CMAKE_CURRENT_LIST_DIR}/Src/runcpp2/DependenciesHelper.cpp"
"${CMAKE_CURRENT_LIST_DIR}/Src/runcpp2/ParseUtil.cpp"
"${CMAKE_CURRENT_LIST_DIR}/Src/runcpp2/PlatformUtil.cpp"
"${CMAKE_CURRENT_LIST_DIR}/Src/runcpp2/StringUtil.cpp"
"${CMAKE_CURRENT_LIST_DIR}/Src/runcpp2/runcpp2.cpp"
"${CMAKE_CURRENT_LIST_DIR}/Src/runcpp2/BuildsManager.cpp"
"${CMAKE_CURRENT_LIST_DIR}/Src/runcpp2/PipelineSteps.cpp"
"${CMAKE_CURRENT_LIST_DIR}/Src/runcpp2/IncludeManager.cpp"
)
set(RUNCPP2_SOURCE_FILES "${CMAKE_CURRENT_LIST_DIR}/Src/runcpp2/Data/Profile.cpp"
"${CMAKE_CURRENT_LIST_DIR}/Src/runcpp2/Data/DependencyInfo.cpp"
"${CMAKE_CURRENT_LIST_DIR}/Src/runcpp2/Data/DependencyLinkProperty.cpp"
"${CMAKE_CURRENT_LIST_DIR}/Src/runcpp2/Data/DependencySource.cpp"
"${CMAKE_CURRENT_LIST_DIR}/Src/runcpp2/Data/GitSource.cpp"
"${CMAKE_CURRENT_LIST_DIR}/Src/runcpp2/Data/LocalSource.cpp"
"${CMAKE_CURRENT_LIST_DIR}/Src/runcpp2/Data/FileProperties.cpp"
"${CMAKE_CURRENT_LIST_DIR}/Src/runcpp2/Data/FlagsOverrideInfo.cpp"
"${CMAKE_CURRENT_LIST_DIR}/Src/runcpp2/Data/ProfilesCommands.cpp"
"${CMAKE_CURRENT_LIST_DIR}/Src/runcpp2/Data/ProfilesFlagsOverride.cpp"
"${CMAKE_CURRENT_LIST_DIR}/Src/runcpp2/Data/ScriptInfo.cpp"
"${CMAKE_CURRENT_LIST_DIR}/Src/runcpp2/Data/ProfilesProcessPaths.cpp"
"${CMAKE_CURRENT_LIST_DIR}/Src/runcpp2/Data/FilesTypesInfo.cpp"
"${CMAKE_CURRENT_LIST_DIR}/Src/runcpp2/Data/StageInfo.cpp"
"${CMAKE_CURRENT_LIST_DIR}/Src/runcpp2/Data/ProfilesDefines.cpp"
"${CMAKE_CURRENT_LIST_DIR}/Src/runcpp2/Data/FilesToCopyInfo.cpp"
"${CMAKE_CURRENT_LIST_DIR}/Src/runcpp2/Data/BuildTypeHelper.cpp"
"${CMAKE_CURRENT_LIST_DIR}/Src/runcpp2/ProfileHelper.cpp"
"${CMAKE_CURRENT_LIST_DIR}/Src/runcpp2/CompilingLinking.cpp"
"${CMAKE_CURRENT_LIST_DIR}/Src/runcpp2/ConfigParsing.cpp"
"${CMAKE_CURRENT_LIST_DIR}/Src/runcpp2/DefaultYAMLs.c"
"${CMAKE_CURRENT_LIST_DIR}/Src/runcpp2/DependenciesHelper.cpp"
"${CMAKE_CURRENT_LIST_DIR}/Src/runcpp2/ParseUtil.cpp"
"${CMAKE_CURRENT_LIST_DIR}/Src/runcpp2/PlatformUtil.cpp"
"${CMAKE_CURRENT_LIST_DIR}/Src/runcpp2/StringUtil.cpp"
"${CMAKE_CURRENT_LIST_DIR}/Src/runcpp2/runcpp2.cpp"
"${CMAKE_CURRENT_LIST_DIR}/Src/runcpp2/BuildsManager.cpp"
"${CMAKE_CURRENT_LIST_DIR}/Src/runcpp2/PipelineSteps.cpp"
"${CMAKE_CURRENT_LIST_DIR}/Src/runcpp2/IncludeManager.cpp")

add_library(runcpp2 STATIC ${RUNCPP2_SOURCE_FILES})

target_include_directories(runcpp2 PUBLIC "${CMAKE_CURRENT_LIST_DIR}/Include")
target_link_libraries(runcpp2 PRIVATE ssLogger System2 CppOverride dylib)
Expand Down Expand Up @@ -192,11 +192,26 @@ target_compile_options(runcpp2 PRIVATE "${RUNCPP2_STANDARD_COMPILE_FLAGS}")
# Define the version macro
target_compile_definitions(runcpp2 PUBLIC RUNCPP2_VERSION="${RUNCPP2_PROJECT_VERSION}")

# =========================================================================
# runcpp2 executable
# =========================================================================

add_executable(runcpp2_main "${CMAKE_CURRENT_LIST_DIR}/Src/runcpp2/main.cpp")
target_compile_options(runcpp2_main PRIVATE "${RUNCPP2_STANDARD_COMPILE_FLAGS}")
target_link_libraries(runcpp2_main PRIVATE runcpp2 ssLogger ghc_filesystem)
set_target_properties(runcpp2_main PROPERTIES OUTPUT_NAME "runcpp2")

# =========================================================================
# runcpp2 library override
# =========================================================================

add_library(runcpp2_override STATIC ${RUNCPP2_SOURCE_FILES})
target_include_directories(runcpp2_override PUBLIC "${CMAKE_CURRENT_LIST_DIR}/Include")
target_link_libraries(runcpp2_override PRIVATE ssLogger System2 CppOverride dylib)
target_link_libraries(runcpp2_override PUBLIC ghc_filesystem ryml::ryml mpark_variant)
target_compile_options(runcpp2_override PRIVATE "${RUNCPP2_STANDARD_COMPILE_FLAGS}")
target_compile_definitions(runcpp2_override PUBLIC RUNCPP2_VERSION="${RUNCPP2_PROJECT_VERSION}"
INTERNAL_RUNCPP2_UNIT_TESTS=1)
if(RUNCPP2_BUILD_TESTS)
add_subdirectory("${CMAKE_CURRENT_LIST_DIR}/Src/Tests")
endif()
Expand Down
5 changes: 3 additions & 2 deletions DefaultYAMLs/DefaultUserConfig.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -101,9 +101,10 @@ Templates:
# Exercise caution when using variables or user-provided input in your build commands
# to prevent potential security vulnerabilities.

# TODO(NOW): Make it auto? Or DefaultProfile?
# A profile to be used if not specified while running the build script
PreferredProfile: "g++"
PreferredProfile:
DefaultPlatform: "g++"
Windows: "msvc"

# List of compiler/linker profiles that instruct how to compile/link
Profiles:
Expand Down
63 changes: 63 additions & 0 deletions Include/Tests/ConfigParsing/MockComponents.hpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
#ifndef RUNCPP2_UNIT_TESTS_CONFIG_PARSING_MOCK_COMPONENTS_HPP
#define RUNCPP2_UNIT_TESTS_CONFIG_PARSING_MOCK_COMPONENTS_HPP

#if !defined(NOMINMAX)
#define NOMINMAX 1
#endif
#include "ghc/filesystem.hpp"
#include "CppOverride.hpp"

#include <sstream>
#include <type_traits>

extern CO_DECLARE_INSTANCE(OverrideInstance);

namespace ghc
{
namespace filesystem
{
CO_OVERRIDE_METHOD( OverrideInstance,
bool,
Mock_exists,
(const std::string&, std::error_code&),
/* no prepend */,
noexcept)

CO_OVERRIDE_METHOD( OverrideInstance,
bool,
Mock_is_directory,
(const std::string&, std::error_code&),
/* no prepend */,
noexcept)
}
}

namespace std
{
class Mock_ifstream
{
public:
CO_OVERRIDE_MEMBER_METHOD_CTOR( OverrideInstance,
Mock_ifstream,
const ghc::filesystem::path&)
CO_OVERRIDE_MEMBER_METHOD(OverrideInstance, bool, operator!, ())
CO_OVERRIDE_MEMBER_METHOD(OverrideInstance, std::string, rdbuf, ())
CO_OVERRIDE_METHOD( OverrideInstance,
Mock_ifstream&,
operator<<,
(Mock_ifstream&, T const&),
template<typename T> friend)
};
}

#define exists Mock_exists
#define is_directory Mock_is_directory
#define ifstream Mock_ifstream

#if INTERNAL_RUNCPP2_UNDEF_MOCKS
#undef exists
#undef is_directory
#undef ifstream
#endif

#endif
9 changes: 8 additions & 1 deletion Src/Tests/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,19 @@ target_compile_options(IncludeManagerTest PRIVATE "${RUNCPP2_STANDARD_COMPILE_FL
target_link_libraries(IncludeManagerTest PRIVATE ghc_filesystem CppOverride ssTest ssLogger)
target_compile_definitions(IncludeManagerTest PRIVATE INTERNAL_RUNCPP2_UNIT_TESTS=1)


add_executable(ConfigParsingTest "${CMAKE_CURRENT_LIST_DIR}/ConfigParsingTest.cpp")
target_include_directories(ConfigParsingTest PRIVATE "${CMAKE_CURRENT_LIST_DIR}/../../Include")
target_compile_options(ConfigParsingTest PRIVATE "${RUNCPP2_STANDARD_COMPILE_FLAGS}")
target_link_libraries(ConfigParsingTest PRIVATE ghc_filesystem CppOverride ssTest ssLogger runcpp2_override)
target_compile_definitions(ConfigParsingTest PRIVATE INTERNAL_RUNCPP2_UNIT_TESTS=1)


function(create_data_test TEST_NAME)
add_executable("${TEST_NAME}" "${CMAKE_CURRENT_LIST_DIR}/Data/${TEST_NAME}.cpp")
target_compile_options("${TEST_NAME}" PRIVATE "${RUNCPP2_STANDARD_COMPILE_FLAGS}")
target_compile_definitions("${TEST_NAME}" PRIVATE INTERNAL_RUNCPP2_UNIT_TESTS=1 TERMCOLOR_USE_ANSI_ESCAPE_SEQUENCES=1)
target_link_libraries("${TEST_NAME}" PUBLIC runcpp2 ssTest)

endfunction()

create_data_test(FilePropertiesTest)
Expand Down
Loading