From bf3db2e1839529cd5936346fa40277a3e1d4448d Mon Sep 17 00:00:00 2001 From: Tanaya Mankad Date: Mon, 13 Feb 2023 15:37:37 -0700 Subject: [PATCH 01/34] Use updated btwxt interface. --- libtk205/vendor/btwxt | 2 +- schema-205 | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/libtk205/vendor/btwxt b/libtk205/vendor/btwxt index 1b748c9..5ff6281 160000 --- a/libtk205/vendor/btwxt +++ b/libtk205/vendor/btwxt @@ -1 +1 @@ -Subproject commit 1b748c9276cc73c0d213fd50025719234713afdd +Subproject commit 5ff6281148bd774d3083f53f25d71890d723e741 diff --git a/schema-205 b/schema-205 index dd13730..c9fd3f8 160000 --- a/schema-205 +++ b/schema-205 @@ -1 +1 @@ -Subproject commit dd137308574936cc50e3d4f93cbb023856e339e6 +Subproject commit c9fd3f8a5e51432ad0c8f3e23a561a0487e203a8 From ea23349d9e5e10d2fbf4ffbcc82da2ab0e523400 Mon Sep 17 00:00:00 2001 From: Tanaya Mankad Date: Tue, 21 Feb 2023 11:00:29 -0700 Subject: [PATCH 02/34] Merge minor changes from branch. --- libtk205/vendor/btwxt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libtk205/vendor/btwxt b/libtk205/vendor/btwxt index 5ff6281..d16a384 160000 --- a/libtk205/vendor/btwxt +++ b/libtk205/vendor/btwxt @@ -1 +1 @@ -Subproject commit 5ff6281148bd774d3083f53f25d71890d723e741 +Subproject commit d16a384f5bcbc5b16bf50936e617ce6f6d658094 From 143547e4a8e14dce007831d1757824aecf564ff4 Mon Sep 17 00:00:00 2001 From: Tanaya Mankad Date: Wed, 26 Apr 2023 06:06:17 -0600 Subject: [PATCH 03/34] Add Courierr dependency; add updated btwxt with Courierr. --- libtk205/CMakeLists.txt | 3 ++- libtk205/include/loadobject_205.h | 5 +++-- libtk205/test/fixtures_libtk205.hpp | 21 ++++++++++--------- libtk205/test/main_libtk205.cpp | 32 ++++------------------------- libtk205/vendor/btwxt | 2 +- schema-205 | 2 +- 6 files changed, 22 insertions(+), 43 deletions(-) diff --git a/libtk205/CMakeLists.txt b/libtk205/CMakeLists.txt index 63f7cbe..7434c8b 100644 --- a/libtk205/CMakeLists.txt +++ b/libtk205/CMakeLists.txt @@ -6,7 +6,7 @@ include(CTest) set(JSON_BuildTests OFF CACHE INTERNAL "") # include_directories adds locations to the -I command line -include_directories(${CMAKE_CURRENT_SOURCE_DIR}/vendor/btwxt/src) +include_directories(${CMAKE_CURRENT_SOURCE_DIR}/vendor/btwxt/include/btwxt) include_directories(${CMAKE_CURRENT_SOURCE_DIR}/vendor/json/single_include) include_directories(${CMAKE_CURRENT_SOURCE_DIR}/vendor/json/include) include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include) @@ -52,6 +52,7 @@ add_library(libtk205 ${SOURCES}) # add_dependencies(update_lib_repo libtk205) add_subdirectory(vendor) +target_link_libraries(libtk205 PUBLIC courierr fmt) if (BUILD_TK205_TESTING) add_compile_definitions(TEST205_INPUT_EXAMPLES_DIR="${TEST205_INPUT_EXAMPLES_DIR}") diff --git a/libtk205/include/loadobject_205.h b/libtk205/include/loadobject_205.h index 5d1b01a..9ef37bb 100644 --- a/libtk205/include/loadobject_205.h +++ b/libtk205/include/loadobject_205.h @@ -2,12 +2,13 @@ #define LOADOBJECT_205_H_ #include +#include #include namespace tk205 { template - void a205_json_get(nlohmann::json j, const char *subnode, T& a205_object, bool& object_is_set, bool required = false) + void a205_json_get(nlohmann::json j, Courierr::Courierr& logger, const char *subnode, T& a205_object, bool& object_is_set, bool required = false) { try { @@ -19,7 +20,7 @@ namespace tk205 { object_is_set = false; if (required) { - show_message(MsgSeverity::WARN_205, ex.what()); + logger.warning(ex.what()); } } } diff --git a/libtk205/test/fixtures_libtk205.hpp b/libtk205/test/fixtures_libtk205.hpp index 2238749..314c2e6 100644 --- a/libtk205/test/fixtures_libtk205.hpp +++ b/libtk205/test/fixtures_libtk205.hpp @@ -4,6 +4,7 @@ #ifndef FIXTURE_LIBTK205_HPP_ #define FIXTURE_LIBTK205_HPP_ +#include #include "gtest/gtest.h" // The following headers are necessary to create an RS instance #include "rs0001.h" @@ -38,7 +39,7 @@ class RS0001BadFixture : public RSFixture RS0001BadFixture() : RSFixture() { RSInstanceFactory::register_factory("RS0001", std::make_shared()); - rs_ = RSInstanceFactory::create("RS0001", TEST205_INPUT_EXAMPLES_DIR "/examples/RS0002/Unitary-Constant-Efficiency.RS0002.a205.json"); + rs_ = RSInstanceFactory::create("RS0001", TEST205_INPUT_EXAMPLES_DIR "/examples/RS0002/Unitary-Constant-Efficiency.RS0002.a205.json", std::make_shared()); } }; @@ -48,7 +49,7 @@ class RS0001UnsupportedFixture : public RSFixture RS0001UnsupportedFixture() : RSFixture() { RSInstanceFactory::register_factory("RS0001", std::make_shared()); - rs_ = RSInstanceFactory::create("RS0001", TEST205_INPUT_EXAMPLES_DIR "/examples/RS0001/Chiller-Unsupported.RS0001.a205.json"); + rs_ = RSInstanceFactory::create("RS0001", TEST205_INPUT_EXAMPLES_DIR "/examples/RS0001/Chiller-Unsupported.RS0001.a205.json", std::make_shared()); } }; @@ -58,7 +59,7 @@ class RS0001Fixture : public RSFixture RS0001Fixture() : RSFixture() { RSInstanceFactory::register_factory("RS0001", std::make_shared()); - rs_ = RSInstanceFactory::create("RS0001", TEST205_INPUT_EXAMPLES_DIR "/examples/RS0001/Chiller-Constant-Efficiency.RS0001.a205.json"); + rs_ = RSInstanceFactory::create("RS0001", TEST205_INPUT_EXAMPLES_DIR "/examples/RS0001/Chiller-Constant-Efficiency.RS0001.a205.json", std::make_shared()); } }; @@ -68,7 +69,7 @@ class ASHRAEChillerFixture : public RSFixture ASHRAEChillerFixture() : RSFixture() { RSInstanceFactory::register_factory("RS0001", std::make_shared()); - rs_ = RSInstanceFactory::create("RS0001", TEST205_INPUT_EXAMPLES_DIR "/examples/RS0001/ASHRAE90-1-2019-bd-Curve-Set-C.RS0001.a205.json"); + rs_ = RSInstanceFactory::create("RS0001", TEST205_INPUT_EXAMPLES_DIR "/examples/RS0001/ASHRAE90-1-2019-bd-Curve-Set-C.RS0001.a205.json", std::make_shared()); } }; @@ -78,7 +79,7 @@ class RS0002Fixture : public RSFixture RS0002Fixture() : RSFixture() { RSInstanceFactory::register_factory("RS0002", std::make_shared()); - rs_ = RSInstanceFactory::create("RS0002", TEST205_INPUT_EXAMPLES_DIR "/examples/RS0002/Unitary-Constant-Efficiency.RS0002.a205.json"); + rs_ = RSInstanceFactory::create("RS0002", TEST205_INPUT_EXAMPLES_DIR "/examples/RS0002/Unitary-Constant-Efficiency.RS0002.a205.json", std::make_shared()); } }; @@ -88,7 +89,7 @@ class RS0003Fixture : public RSFixture RS0003Fixture() : RSFixture() { RSInstanceFactory::register_factory("RS0003", std::make_shared()); - rs_= RSInstanceFactory::create("RS0003", TEST205_INPUT_EXAMPLES_DIR "/examples/RS0003/Fan-Continuous.RS0003.a205.json"); + rs_= RSInstanceFactory::create("RS0003", TEST205_INPUT_EXAMPLES_DIR "/examples/RS0003/Fan-Continuous.RS0003.a205.json", std::make_shared()); } }; @@ -98,7 +99,7 @@ class RS0004Fixture : public RSFixture RS0004Fixture() : RSFixture() { RSInstanceFactory::register_factory("RS0004", std::make_shared()); - rs_= RSInstanceFactory::create("RS0004", TEST205_INPUT_EXAMPLES_DIR "/examples/RS0004/DX-Constant-Efficiency.RS0004.a205.json"); + rs_= RSInstanceFactory::create("RS0004", TEST205_INPUT_EXAMPLES_DIR "/examples/RS0004/DX-Constant-Efficiency.RS0004.a205.json", std::make_shared()); } }; @@ -108,7 +109,7 @@ class RS0005Fixture : public RSFixture RS0005Fixture() : RSFixture() { RSInstanceFactory::register_factory("RS0005", std::make_shared()); - rs_= RSInstanceFactory::create("RS0005", TEST205_INPUT_EXAMPLES_DIR "/examples/RS0005/Motor-Constant-Efficiency.RS0005.a205.json"); + rs_= RSInstanceFactory::create("RS0005", TEST205_INPUT_EXAMPLES_DIR "/examples/RS0005/Motor-Constant-Efficiency.RS0005.a205.json", std::make_shared()); } }; @@ -118,7 +119,7 @@ class RS0006Fixture : public RSFixture RS0006Fixture() : RSFixture() { RSInstanceFactory::register_factory("RS0006", std::make_shared()); - rs_ = RSInstanceFactory::create("RS0006", TEST205_INPUT_EXAMPLES_DIR "/examples/RS0006/Drive-Constant-Efficiency.RS0006.a205.json"); + rs_ = RSInstanceFactory::create("RS0006", TEST205_INPUT_EXAMPLES_DIR "/examples/RS0006/Drive-Constant-Efficiency.RS0006.a205.json", std::make_shared()); } }; @@ -128,7 +129,7 @@ class RS0007Fixture : public RSFixture RS0007Fixture() : RSFixture() { RSInstanceFactory::register_factory("RS0007", std::make_shared()); - rs_ = RSInstanceFactory::create("RS0007", TEST205_INPUT_EXAMPLES_DIR "/examples/RS0007/Belt-Drive-Constant-Efficiency.RS0007.a205.json"); + rs_ = RSInstanceFactory::create("RS0007", TEST205_INPUT_EXAMPLES_DIR "/examples/RS0007/Belt-Drive-Constant-Efficiency.RS0007.a205.json", std::make_shared()); } }; diff --git a/libtk205/test/main_libtk205.cpp b/libtk205/test/main_libtk205.cpp index 0917c46..c507307 100644 --- a/libtk205/test/main_libtk205.cpp +++ b/libtk205/test/main_libtk205.cpp @@ -50,7 +50,7 @@ TEST_F(RS0001Fixture, Calculate_performance_cooling_3) { auto rs = dynamic_cast(rs_.get()); EXPECT_TRUE(rs != nullptr); - auto result = rs->performance.performance_map_cooling.calculate_performance(0.0755, 280.0, 0.0957, 295.0, 0.5, Btwxt::Method::LINEAR).condenser_liquid_leaving_temperature; + auto result = rs->performance.performance_map_cooling.calculate_performance(0.0755, 280.0, 0.0957, 295.0, 0.5, Btwxt::Method::linear).condenser_liquid_leaving_temperature; EXPECT_NEAR(result, 296.03, 0.001); } @@ -59,8 +59,8 @@ TEST_F(ASHRAEChillerFixture, Calculate_performance_cubic) auto rs = dynamic_cast(rs_.get()); EXPECT_TRUE(rs != nullptr); std::vector target {0.00565, 280.0, 0.00845, 297.0, 1.5}; //NOLINT : Magic numbers necessary! - auto result1 = rs->performance.performance_map_cooling.calculate_performance(target, Btwxt::Method::LINEAR); - auto result2 = rs->performance.performance_map_cooling.calculate_performance(target, Btwxt::Method::CUBIC); + auto result1 = rs->performance.performance_map_cooling.calculate_performance(target, Btwxt::Method::linear); + auto result2 = rs->performance.performance_map_cooling.calculate_performance(target, Btwxt::Method::cubic); EXPECT_NE(result1, result2); } @@ -78,6 +78,7 @@ TEST_F(RS0003Fixture, Verify_grid_variable_index) auto rs = dynamic_cast(rs_.get()); EXPECT_TRUE(rs != nullptr); auto pm = dynamic_cast(rs->performance.performance_map.get()); + EXPECT_TRUE(pm != nullptr); auto result = pm->grid_variables.static_pressure_difference_index; EXPECT_EQ(result, 1u); } @@ -96,33 +97,8 @@ TEST_F(RS0001Fixture, Verify_element_metadata) EXPECT_THAT(result, "gpm"); } -void Display_message(MsgSeverity severity, const std::string &message, void *) -{ - static std::map severity_str { - {MsgSeverity::DEBUG_205, "DEBUG"}, - {MsgSeverity::INFO_205, "INFO"}, - {MsgSeverity::WARN_205, "WARN"}, - {MsgSeverity::ERR_205, "ERR"} - }; - std::cout << severity_str[severity] << ": " << message << std::endl; -} - -void Btwxt_message(const Btwxt::MsgLevel messageType, const std::string message, - void *) -{ - static std::map severity { - {Btwxt::MsgLevel::MSG_DEBUG, MsgSeverity::DEBUG_205}, - {Btwxt::MsgLevel::MSG_INFO, MsgSeverity::INFO_205}, - {Btwxt::MsgLevel::MSG_WARN, MsgSeverity::WARN_205}, - {Btwxt::MsgLevel::MSG_ERR, MsgSeverity::ERR_205} - }; - Display_message(severity[messageType], message, nullptr); -} - int main(int argc, char **argv) { ::testing::InitGoogleTest(&argc, argv); - tk205::set_error_handler(Display_message, nullptr); - Btwxt::setMessageCallback(Btwxt_message, nullptr); return RUN_ALL_TESTS(); } diff --git a/libtk205/vendor/btwxt b/libtk205/vendor/btwxt index d16a384..fd21da4 160000 --- a/libtk205/vendor/btwxt +++ b/libtk205/vendor/btwxt @@ -1 +1 @@ -Subproject commit d16a384f5bcbc5b16bf50936e617ce6f6d658094 +Subproject commit fd21da4a17ed6fcb5d532f65a1e1ea9222621233 diff --git a/schema-205 b/schema-205 index c9fd3f8..0c575fc 160000 --- a/schema-205 +++ b/schema-205 @@ -1 +1 @@ -Subproject commit c9fd3f8a5e51432ad0c8f3e23a561a0487e203a8 +Subproject commit 0c575fcb12a032f6183f6bc06745dc064ed7bd82 From d3e5fe61135b53d6fabac3eca6500962a1c9b5df Mon Sep 17 00:00:00 2001 From: Tanaya Mankad Date: Fri, 28 Apr 2023 10:20:43 -0600 Subject: [PATCH 04/34] Update performance map members. --- libtk205/vendor/btwxt | 2 +- schema-205 | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/libtk205/vendor/btwxt b/libtk205/vendor/btwxt index fd21da4..657b3f9 160000 --- a/libtk205/vendor/btwxt +++ b/libtk205/vendor/btwxt @@ -1 +1 @@ -Subproject commit fd21da4a17ed6fcb5d532f65a1e1ea9222621233 +Subproject commit 657b3f9d6c99f27f109e1190e6f18cbe03a83fe0 diff --git a/schema-205 b/schema-205 index 0c575fc..26b92fa 160000 --- a/schema-205 +++ b/schema-205 @@ -1 +1 @@ -Subproject commit 0c575fcb12a032f6183f6bc06745dc064ed7bd82 +Subproject commit 26b92fa7a38d4a01c91b7b16dd9856318bccc286 From a7d3c7b039f5052b709d10c3753c1148bb2dc5d7 Mon Sep 17 00:00:00 2001 From: Tanaya Mankad Date: Fri, 28 Apr 2023 10:21:33 -0600 Subject: [PATCH 05/34] Revert btwxt to have default c'tors. --- libtk205/vendor/btwxt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libtk205/vendor/btwxt b/libtk205/vendor/btwxt index 657b3f9..a4e3f98 160000 --- a/libtk205/vendor/btwxt +++ b/libtk205/vendor/btwxt @@ -1 +1 @@ -Subproject commit 657b3f9d6c99f27f109e1190e6f18cbe03a83fe0 +Subproject commit a4e3f981e1889cf99764df0b3a162765252a6881 From 69644f4baccc7819201ab58d233a3190c23c6665 Mon Sep 17 00:00:00 2001 From: Tanaya Mankad Date: Fri, 28 Apr 2023 13:49:06 -0600 Subject: [PATCH 06/34] Add some diagnostics. --- .github/workflows/build-and-test.yml | 1 + libtk205/cmake/update_lib_repo.cmake | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index b181671..60d3fa5 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -26,5 +26,6 @@ jobs: - name: Build and test run: poetry run doit - name: Export libtk205 source + if: matrix.os == 'ubuntu-latest' && matrix.python-version == '3.10' run: cmake -DPA_TOKEN="${{secrets.CI_PA_TOKEN}}" -DPROJECT_SOURCE_DIR="${{github.workspace}}/libtk205" -P "${{github.workspace}}/libtk205/cmake/update_lib_repo.cmake" diff --git a/libtk205/cmake/update_lib_repo.cmake b/libtk205/cmake/update_lib_repo.cmake index 7fc3478..4a250ec 100644 --- a/libtk205/cmake/update_lib_repo.cmake +++ b/libtk205/cmake/update_lib_repo.cmake @@ -96,6 +96,10 @@ file(COPY "${PROJECT_SOURCE_DIR}/test/" file(COPY "${PROJECT_SOURCE_DIR}/../schema-205/examples" DESTINATION "${clone_dir}") +# git status (see if files changed) +execute_process(COMMAND ${GIT_EXECUTABLE} status + WORKING_DIRECTORY ${clone_dir} + # git config execute_process(COMMAND ${GIT_EXECUTABLE} config user.name "Actions CI" WORKING_DIRECTORY ${clone_dir} From aa716bf3065312c2bb9f17ba4269c76d0e5a6823 Mon Sep 17 00:00:00 2001 From: Tanaya Mankad Date: Fri, 28 Apr 2023 13:55:25 -0600 Subject: [PATCH 07/34] Fix syntax error. --- libtk205/cmake/update_lib_repo.cmake | 1 + 1 file changed, 1 insertion(+) diff --git a/libtk205/cmake/update_lib_repo.cmake b/libtk205/cmake/update_lib_repo.cmake index 4a250ec..bd46e90 100644 --- a/libtk205/cmake/update_lib_repo.cmake +++ b/libtk205/cmake/update_lib_repo.cmake @@ -99,6 +99,7 @@ file(COPY "${PROJECT_SOURCE_DIR}/../schema-205/examples" # git status (see if files changed) execute_process(COMMAND ${GIT_EXECUTABLE} status WORKING_DIRECTORY ${clone_dir} +) # git config execute_process(COMMAND ${GIT_EXECUTABLE} config user.name "Actions CI" From 4f6d4335c83cd4b1e5747c49048bfb41887a797a Mon Sep 17 00:00:00 2001 From: Tanaya Mankad Date: Mon, 1 May 2023 09:42:46 -0600 Subject: [PATCH 08/34] Add the fixed base classes as a dependency for the generation of RS source code. --- libtk205/CMakeLists.txt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/libtk205/CMakeLists.txt b/libtk205/CMakeLists.txt index 7434c8b..a237fb1 100644 --- a/libtk205/CMakeLists.txt +++ b/libtk205/CMakeLists.txt @@ -14,6 +14,9 @@ include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../schema-205/build/include) include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../schema-205/schema205/src) file(GLOB RS_schemas "${PROJECT_SOURCE_DIR}/../schema-205/schema-source/*.schema.yaml") +file(GLOB base_classes + "${PROJECT_SOURCE_DIR}/../schema-205/schema205/src/*.h" + "${PROJECT_SOURCE_DIR}/../schema-205/schema205/src/*.cpp") foreach(schema IN LISTS RS_schemas) string(REGEX REPLACE "${PROJECT_SOURCE_DIR}/../schema-205/schema-source/(.*).schema.yaml" "\\1" schema_name "${schema}") @@ -32,7 +35,7 @@ list(APPEND lib_headers "${CMAKE_CURRENT_SOURCE_DIR}/include/typeinfo_205.h" add_custom_command(OUTPUT ${rs_headers} ${rs_src} ${lib_headers} ${lib_src} COMMAND poetry run doit cpp - DEPENDS ${RS_schemas} + DEPENDS ${RS_schemas} ${base_classes} COMMENT "Generate libtk205 files from YAML schema" WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/../schema-205") From b3dfa5a88c6952526810f060a32dbffa7eef4466 Mon Sep 17 00:00:00 2001 From: Tanaya Mankad Date: Tue, 2 May 2023 16:02:21 -0600 Subject: [PATCH 09/34] Update error logging. --- libtk205/CMakeLists.txt | 14 +++++----- libtk205/include/error_handling_tk205.h | 25 ------------------ libtk205/include/loadobject_205.h | 1 - libtk205/src/error_handling_tk205.cpp | 35 ------------------------- schema-205 | 2 +- 5 files changed, 8 insertions(+), 69 deletions(-) delete mode 100644 libtk205/include/error_handling_tk205.h delete mode 100644 libtk205/src/error_handling_tk205.cpp diff --git a/libtk205/CMakeLists.txt b/libtk205/CMakeLists.txt index a237fb1..ade4f7b 100644 --- a/libtk205/CMakeLists.txt +++ b/libtk205/CMakeLists.txt @@ -30,22 +30,22 @@ foreach(schema IN LISTS RS_schemas) endforeach() list(APPEND lib_headers "${CMAKE_CURRENT_SOURCE_DIR}/include/typeinfo_205.h" - "${CMAKE_CURRENT_SOURCE_DIR}/include/loadobject_205.h" - "${CMAKE_CURRENT_SOURCE_DIR}/include/error_handling_tk205.h") + "${CMAKE_CURRENT_SOURCE_DIR}/include/loadobject_205.h") -add_custom_command(OUTPUT ${rs_headers} ${rs_src} ${lib_headers} ${lib_src} +# Runs if OUTPUT is missing, or if OUTPUT exists BUT file DEPENDencies have changed +# If OUTPUT exists and DEPENDS files haven't changed, the command is not run (?) +add_custom_command(OUTPUT ${rs_headers} ${rs_src} ${lib_headers} ${base_classes} COMMAND poetry run doit cpp - DEPENDS ${RS_schemas} ${base_classes} + DEPENDS ${RS_schemas} COMMENT "Generate libtk205 files from YAML schema" WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/../schema-205") -set (SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/src/error_handling_tk205.cpp" +set (SOURCES "${lib_headers}" "${rs_headers}" "${rs_src}" "${factory_headers}" "${factory_src}" - "${lib_headers}" - "${lib_src}") + "${base_classes}") add_library(libtk205 ${SOURCES}) diff --git a/libtk205/include/error_handling_tk205.h b/libtk205/include/error_handling_tk205.h deleted file mode 100644 index 2dcdd4e..0000000 --- a/libtk205/include/error_handling_tk205.h +++ /dev/null @@ -1,25 +0,0 @@ -#ifndef ERROR_HANDLING_TK205_H_ -#define ERROR_HANDLING_TK205_H_ - -#include -#include -#include -#include - -namespace tk205 { - - enum class MsgSeverity : unsigned int { - DEBUG_205, - INFO_205, - WARN_205, - ERR_205 - }; - - using msg_handler = std::function; - - void set_error_handler(msg_handler handler, void *caller_info); - void show_message(MsgSeverity severity, const std::string& message); -} - - -#endif \ No newline at end of file diff --git a/libtk205/include/loadobject_205.h b/libtk205/include/loadobject_205.h index 9ef37bb..59ee42f 100644 --- a/libtk205/include/loadobject_205.h +++ b/libtk205/include/loadobject_205.h @@ -3,7 +3,6 @@ #include #include -#include namespace tk205 { diff --git a/libtk205/src/error_handling_tk205.cpp b/libtk205/src/error_handling_tk205.cpp deleted file mode 100644 index b2b82c3..0000000 --- a/libtk205/src/error_handling_tk205.cpp +++ /dev/null @@ -1,35 +0,0 @@ -#include "error_handling_tk205.h" -#include -#include -#include - -namespace tk205 { - - msg_handler error_handler_; - void *caller_info_; - - void set_error_handler(msg_handler handler, void *caller_info) - { - error_handler_ = std::move(handler); - caller_info_ = caller_info; - } - - void show_message(MsgSeverity severity, const std::string &message) - { - static std::map severity_str { - {MsgSeverity::DEBUG_205, "DEBUG"}, - {MsgSeverity::INFO_205, "INFO"}, - {MsgSeverity::WARN_205, "WARN"}, - {MsgSeverity::ERR_205, "ERR"} - }; - if (!error_handler_) - { - //std::cout << severity_str[severity] << ": " << message << std::endl; - } - else - { - error_handler_(severity, message, caller_info_); - } - } -} - diff --git a/schema-205 b/schema-205 index 26b92fa..17d217f 160000 --- a/schema-205 +++ b/schema-205 @@ -1 +1 @@ -Subproject commit 26b92fa7a38d4a01c91b7b16dd9856318bccc286 +Subproject commit 17d217fde83faf910a80f5dc32965d510e94793b From 0c98f939e49bc6964a5bd7e93b6be0a5361f05af Mon Sep 17 00:00:00 2001 From: Tanaya Mankad Date: Mon, 8 May 2023 13:13:54 -0600 Subject: [PATCH 10/34] Update build settings; btwxt. --- libtk205/test/CMakeLists.txt | 19 ++++++++----------- libtk205/vendor/CMakeLists.txt | 4 ++++ schema-205 | 2 +- 3 files changed, 13 insertions(+), 12 deletions(-) diff --git a/libtk205/test/CMakeLists.txt b/libtk205/test/CMakeLists.txt index aa3fd3d..bd2cbed 100644 --- a/libtk205/test/CMakeLists.txt +++ b/libtk205/test/CMakeLists.txt @@ -1,13 +1,5 @@ # Test Executable -include_directories(${PROJECT_SOURCE_DIR}/vendor/json/single_include) -include_directories(${PROJECT_SOURCE_DIR}/vendor/json/include) - -include_directories(${PROJECT_SOURCE_DIR}/include) -include_directories(${PROJECT_SOURCE_DIR}/../schema-205/build/include) -include_directories(${PROJECT_SOURCE_DIR}/../schema-205/schema205/src) # rs_instance_factory/base -include_directories(${gtest_SOURCE_DIR}/include) - include(GoogleTest) set (SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/fixtures_libtk205.hpp @@ -15,10 +7,15 @@ set (SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/fixtures_libtk205.hpp ${PROJECT_SOURCE_DIR}/../schema-205/schema205/src/rs_instance_factory.h ${PROJECT_SOURCE_DIR}/../schema-205/schema205/src/rs_instance_factory.cpp) -#Does the following command do anything? -set_source_files_properties(${SOURCES} PROPERTIES GENERATED TRUE) +set_source_files_properties(${SOURCES} PROPERTIES GENERATED TRUE) #TODO: Check if GENERATED property is used add_executable(libtk205_tests ${SOURCES}) -target_link_libraries(libtk205_tests libtk205 btwxt gtest gmock) +target_include_directories(libtk205_tests PRIVATE + ${PROJECT_SOURCE_DIR}/include + ${PROJECT_SOURCE_DIR}/../schema-205/build/include + ${PROJECT_SOURCE_DIR}/../schema-205/schema205/src + ${gtest_SOURCE_DIR}/include) +target_link_libraries(libtk205_tests libtk205 btwxt nlohmann_json gtest gmock) gtest_discover_tests(libtk205_tests TEST_PREFIX libtk205:) + \ No newline at end of file diff --git a/libtk205/vendor/CMakeLists.txt b/libtk205/vendor/CMakeLists.txt index 1da69de..71736dd 100644 --- a/libtk205/vendor/CMakeLists.txt +++ b/libtk205/vendor/CMakeLists.txt @@ -2,6 +2,10 @@ if (NOT TARGET btwxt) add_subdirectory(btwxt) endif() +if (NOT TARGET nlohmann_json) #TODO: check if used + add_subdirectory(json) +endif() + if (BUILD_TK205_TESTING AND NOT TARGET gtest) # Prevent GoogleTest from overriding our compiler/linker options diff --git a/schema-205 b/schema-205 index 17d217f..afb2dc2 160000 --- a/schema-205 +++ b/schema-205 @@ -1 +1 @@ -Subproject commit 17d217fde83faf910a80f5dc32965d510e94793b +Subproject commit afb2dc29c849dd8064df09bd02939617dea5c618 From 1dc359a0a96e5b4ea7ba911bd0bbbc50fc21c26d Mon Sep 17 00:00:00 2001 From: Tanaya Mankad Date: Mon, 8 May 2023 13:43:37 -0600 Subject: [PATCH 11/34] Minor cleanup. --- schema-205 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/schema-205 b/schema-205 index afb2dc2..160f483 160000 --- a/schema-205 +++ b/schema-205 @@ -1 +1 @@ -Subproject commit afb2dc29c849dd8064df09bd02939617dea5c618 +Subproject commit 160f4837639219ffda44ba62abf9281c171843a6 From db4523650d0a18b18c1214e5e0b700d55f83adba Mon Sep 17 00:00:00 2001 From: Tanaya Mankad Date: Mon, 8 May 2023 14:19:54 -0600 Subject: [PATCH 12/34] Update btwxt submodule. --- libtk205/vendor/btwxt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libtk205/vendor/btwxt b/libtk205/vendor/btwxt index a4e3f98..eaeab04 160000 --- a/libtk205/vendor/btwxt +++ b/libtk205/vendor/btwxt @@ -1 +1 @@ -Subproject commit a4e3f981e1889cf99764df0b3a162765252a6881 +Subproject commit eaeab04afb8201478a2df08d2ed292462ab46717 From dbb82e0799357412d2f2709e328346a4cef4f9cf Mon Sep 17 00:00:00 2001 From: Tanaya Mankad Date: Mon, 8 May 2023 17:13:01 -0600 Subject: [PATCH 13/34] Remove serialization entry for objects with no Data Elements. --- schema-205 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/schema-205 b/schema-205 index 160f483..a51af7a 160000 --- a/schema-205 +++ b/schema-205 @@ -1 +1 @@ -Subproject commit 160f4837639219ffda44ba62abf9281c171843a6 +Subproject commit a51af7a84a9d66f17d9cd76df428152ccb6dbd38 From f0d5e10c1ba2d8c870685ad5abe839f1520dee5d Mon Sep 17 00:00:00 2001 From: Tanaya Mankad Date: Wed, 10 May 2023 15:37:58 -0600 Subject: [PATCH 14/34] Start reorganizing the build files for libtk205. --- dodo.py | 1 + libtk205/CMakeLists.txt | 23 +++++------------------ schema-205 | 2 +- 3 files changed, 7 insertions(+), 19 deletions(-) diff --git a/dodo.py b/dodo.py index a567af2..35d6fc9 100644 --- a/dodo.py +++ b/dodo.py @@ -178,6 +178,7 @@ def task_libtk205(): f'cmake -B {LIB_BUILD_PATH}', f'cmake --build {LIB_BUILD_PATH} --config Release' ], + 'clean': ['doit -d schema-205 clean cpp'], } def task_libtk205_tests(): diff --git a/libtk205/CMakeLists.txt b/libtk205/CMakeLists.txt index ade4f7b..be8e10a 100644 --- a/libtk205/CMakeLists.txt +++ b/libtk205/CMakeLists.txt @@ -5,14 +5,6 @@ project(libtk205) include(CTest) set(JSON_BuildTests OFF CACHE INTERNAL "") -# include_directories adds locations to the -I command line -include_directories(${CMAKE_CURRENT_SOURCE_DIR}/vendor/btwxt/include/btwxt) -include_directories(${CMAKE_CURRENT_SOURCE_DIR}/vendor/json/single_include) -include_directories(${CMAKE_CURRENT_SOURCE_DIR}/vendor/json/include) -include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include) -include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../schema-205/build/include) -include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../schema-205/schema205/src) - file(GLOB RS_schemas "${PROJECT_SOURCE_DIR}/../schema-205/schema-source/*.schema.yaml") file(GLOB base_classes "${PROJECT_SOURCE_DIR}/../schema-205/schema205/src/*.h" @@ -29,9 +21,6 @@ foreach(schema IN LISTS RS_schemas) endif() endforeach() -list(APPEND lib_headers "${CMAKE_CURRENT_SOURCE_DIR}/include/typeinfo_205.h" - "${CMAKE_CURRENT_SOURCE_DIR}/include/loadobject_205.h") - # Runs if OUTPUT is missing, or if OUTPUT exists BUT file DEPENDencies have changed # If OUTPUT exists and DEPENDS files haven't changed, the command is not run (?) add_custom_command(OUTPUT ${rs_headers} ${rs_src} ${lib_headers} ${base_classes} @@ -40,8 +29,7 @@ add_custom_command(OUTPUT ${rs_headers} ${rs_src} ${lib_headers} ${base_classes} COMMENT "Generate libtk205 files from YAML schema" WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/../schema-205") -set (SOURCES "${lib_headers}" - "${rs_headers}" +set (SOURCES "${rs_headers}" "${rs_src}" "${factory_headers}" "${factory_src}" @@ -49,13 +37,12 @@ set (SOURCES "${lib_headers}" add_library(libtk205 ${SOURCES}) -# add_custom_target(update_lib_repo ALL -# COMMAND ${CMAKE_COMMAND} "-DPROJECT_SOURCE_DIR=${PROJECT_SOURCE_DIR}" -P "${PROJECT_SOURCE_DIR}/cmake/update_lib_repo.cmake" -# VERBATIM) -# add_dependencies(update_lib_repo libtk205) +target_include_directories(libtk205 PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include) +target_include_directories(libtk205 PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../schema-205/build/include) +target_include_directories(libtk205 PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../schema-205/schema205/src) add_subdirectory(vendor) -target_link_libraries(libtk205 PUBLIC courierr fmt) +target_link_libraries(libtk205 PUBLIC btwxt nlohmann_json) if (BUILD_TK205_TESTING) add_compile_definitions(TEST205_INPUT_EXAMPLES_DIR="${TEST205_INPUT_EXAMPLES_DIR}") diff --git a/schema-205 b/schema-205 index a51af7a..5b9c88b 160000 --- a/schema-205 +++ b/schema-205 @@ -1 +1 @@ -Subproject commit a51af7a84a9d66f17d9cd76df428152ccb6dbd38 +Subproject commit 5b9c88bc056bba71f5256329175050cb31809c03 From 4d1774b3603caf600a1756117cda6274fddc7bd6 Mon Sep 17 00:00:00 2001 From: Tanaya Mankad Date: Thu, 11 May 2023 14:31:59 -0600 Subject: [PATCH 15/34] Move staging directory. --- .gitmodules | 4 ++-- {libtk205 => old_libtk205}/CMakeLists.txt | 0 .../cmake/copy_autogenerated_files.cmake | 0 {libtk205 => old_libtk205}/cmake/copy_base_class_files.cmake | 0 {libtk205 => old_libtk205}/cmake/update_lib_repo.cmake | 0 {libtk205 => old_libtk205}/include/loadobject_205.h | 0 {libtk205 => old_libtk205}/include/typeinfo_205.h | 0 {libtk205 => old_libtk205}/test/CMakeLists.txt | 0 {libtk205 => old_libtk205}/test/fixtures_libtk205.hpp | 0 {libtk205 => old_libtk205}/test/main_libtk205.cpp | 0 {libtk205 => old_libtk205}/vendor/CMakeLists.txt | 0 {libtk205 => old_libtk205}/vendor/btwxt | 0 {libtk205 => old_libtk205}/vendor/json | 0 13 files changed, 2 insertions(+), 2 deletions(-) rename {libtk205 => old_libtk205}/CMakeLists.txt (100%) rename {libtk205 => old_libtk205}/cmake/copy_autogenerated_files.cmake (100%) rename {libtk205 => old_libtk205}/cmake/copy_base_class_files.cmake (100%) rename {libtk205 => old_libtk205}/cmake/update_lib_repo.cmake (100%) rename {libtk205 => old_libtk205}/include/loadobject_205.h (100%) rename {libtk205 => old_libtk205}/include/typeinfo_205.h (100%) rename {libtk205 => old_libtk205}/test/CMakeLists.txt (100%) rename {libtk205 => old_libtk205}/test/fixtures_libtk205.hpp (100%) rename {libtk205 => old_libtk205}/test/main_libtk205.cpp (100%) rename {libtk205 => old_libtk205}/vendor/CMakeLists.txt (100%) rename {libtk205 => old_libtk205}/vendor/btwxt (100%) rename {libtk205 => old_libtk205}/vendor/json (100%) diff --git a/.gitmodules b/.gitmodules index 438fbc8..e4bfa05 100644 --- a/.gitmodules +++ b/.gitmodules @@ -2,8 +2,8 @@ path = schema-205 url = https://github.com/open205/schema-205 [submodule "libtk205/vendor/json"] - path = libtk205/vendor/json + path = old_libtk205/vendor/json url = https://github.com/nlohmann/json.git [submodule "libtk205/vendor/btwxt"] - path = libtk205/vendor/btwxt + path = old_libtk205/vendor/btwxt url = https://github.com/bigladder/btwxt.git diff --git a/libtk205/CMakeLists.txt b/old_libtk205/CMakeLists.txt similarity index 100% rename from libtk205/CMakeLists.txt rename to old_libtk205/CMakeLists.txt diff --git a/libtk205/cmake/copy_autogenerated_files.cmake b/old_libtk205/cmake/copy_autogenerated_files.cmake similarity index 100% rename from libtk205/cmake/copy_autogenerated_files.cmake rename to old_libtk205/cmake/copy_autogenerated_files.cmake diff --git a/libtk205/cmake/copy_base_class_files.cmake b/old_libtk205/cmake/copy_base_class_files.cmake similarity index 100% rename from libtk205/cmake/copy_base_class_files.cmake rename to old_libtk205/cmake/copy_base_class_files.cmake diff --git a/libtk205/cmake/update_lib_repo.cmake b/old_libtk205/cmake/update_lib_repo.cmake similarity index 100% rename from libtk205/cmake/update_lib_repo.cmake rename to old_libtk205/cmake/update_lib_repo.cmake diff --git a/libtk205/include/loadobject_205.h b/old_libtk205/include/loadobject_205.h similarity index 100% rename from libtk205/include/loadobject_205.h rename to old_libtk205/include/loadobject_205.h diff --git a/libtk205/include/typeinfo_205.h b/old_libtk205/include/typeinfo_205.h similarity index 100% rename from libtk205/include/typeinfo_205.h rename to old_libtk205/include/typeinfo_205.h diff --git a/libtk205/test/CMakeLists.txt b/old_libtk205/test/CMakeLists.txt similarity index 100% rename from libtk205/test/CMakeLists.txt rename to old_libtk205/test/CMakeLists.txt diff --git a/libtk205/test/fixtures_libtk205.hpp b/old_libtk205/test/fixtures_libtk205.hpp similarity index 100% rename from libtk205/test/fixtures_libtk205.hpp rename to old_libtk205/test/fixtures_libtk205.hpp diff --git a/libtk205/test/main_libtk205.cpp b/old_libtk205/test/main_libtk205.cpp similarity index 100% rename from libtk205/test/main_libtk205.cpp rename to old_libtk205/test/main_libtk205.cpp diff --git a/libtk205/vendor/CMakeLists.txt b/old_libtk205/vendor/CMakeLists.txt similarity index 100% rename from libtk205/vendor/CMakeLists.txt rename to old_libtk205/vendor/CMakeLists.txt diff --git a/libtk205/vendor/btwxt b/old_libtk205/vendor/btwxt similarity index 100% rename from libtk205/vendor/btwxt rename to old_libtk205/vendor/btwxt diff --git a/libtk205/vendor/json b/old_libtk205/vendor/json similarity index 100% rename from libtk205/vendor/json rename to old_libtk205/vendor/json From ac3fd7d48fbe5828cf9e9b3e12f6ee4ecd0b3b29 Mon Sep 17 00:00:00 2001 From: Tanaya Mankad Date: Tue, 16 May 2023 13:27:10 -0600 Subject: [PATCH 16/34] CMake re-write to clone libtk205 into separate repo and build. --- .gitignore | 3 +- CMakeLists.txt | 44 +++++++++-- cmake/get_lib_repo_local.cmake | 123 ++++++++++++++++++++++++++++++ cmake/update_lib_repo_local.cmake | 123 ++++++++++++++++++++++++++++++ schema-205 | 2 +- 5 files changed, 287 insertions(+), 8 deletions(-) create mode 100644 cmake/get_lib_repo_local.cmake create mode 100644 cmake/update_lib_repo_local.cmake diff --git a/.gitignore b/.gitignore index 4be485f..d14e589 100644 --- a/.gitignore +++ b/.gitignore @@ -10,4 +10,5 @@ env/ .vscode/ .pytest_cache/ sandbox/ -.doit.db* \ No newline at end of file +.doit.db* +libtk205/ \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt index 86ad303..79fa39d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -17,12 +17,44 @@ if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) "MinSizeRel" "RelWithDebInfo") endif() -option( BUILD_TK205_TESTING "Build libtk205 testing targets" ON ) +# Run libtk205 generator -# Set up testing/coverage -if (BUILD_TK205_TESTING) - set(TEST205_INPUT_EXAMPLES_DIR "${PROJECT_SOURCE_DIR}/schema-205") - enable_testing() -endif() +file(GLOB RS_schemas "${PROJECT_SOURCE_DIR}/schema-205/schema-source/*.schema.yaml") + +foreach(schema IN LISTS RS_schemas) + string(REGEX REPLACE "${PROJECT_SOURCE_DIR}/schema-205/schema-source/(.*).schema.yaml" "\\1" schema_name "${schema}") + string(TOLOWER ${schema_name} schema_name) + list(APPEND rs_headers "${PROJECT_SOURCE_DIR}/schema-205/build/include/${schema_name}.h") + list(APPEND rs_src "${PROJECT_SOURCE_DIR}/schema-205/build/cpp/${schema_name}.cpp") + if (schema_name MATCHES "rs.*") + list(APPEND factory_headers "${PROJECT_SOURCE_DIR}/schema-205/build/include/${schema_name}_factory.h") + list(APPEND factory_src "${PROJECT_SOURCE_DIR}/schema-205/build/cpp/${schema_name}_factory.cpp") + endif() +endforeach() + +execute_process( + COMMAND ${CMAKE_COMMAND} -DPROJECT_SOURCE_DIR=${PROJECT_SOURCE_DIR} -P "../cmake/get_lib_repo_local.cmake" +) + +# Runs if OUTPUT is missing, or if OUTPUT exists BUT file DEPENDencies have changed +# If OUTPUT exists and DEPENDS files haven't changed, the command is not run (?) +add_custom_command(OUTPUT ${rs_headers} ${rs_src} ${factory_headers} ${factory_src} + COMMAND poetry run doit cpp + COMMAND ${CMAKE_COMMAND} -DPROJECT_SOURCE_DIR=${PROJECT_SOURCE_DIR} -P "../cmake/update_lib_repo_local.cmake" + DEPENDS ${RS_schemas} + COMMENT "Generate libtk205 files from YAML schema" + WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}/schema-205") + +add_custom_target(libtk205_generator ALL + DEPENDS ${rs_headers} ${rs_src} ${factory_headers} ${factory_src}) + +# option( BUILD_TK205_TESTING "Build libtk205 testing targets" ON ) + +# # Set up testing/coverage +# if (BUILD_TK205_TESTING) +# set(TEST205_INPUT_EXAMPLES_DIR "${PROJECT_SOURCE_DIR}/schema-205") +# enable_testing() +# endif() add_subdirectory(libtk205) + diff --git a/cmake/get_lib_repo_local.cmake b/cmake/get_lib_repo_local.cmake new file mode 100644 index 0000000..6a09d6a --- /dev/null +++ b/cmake/get_lib_repo_local.cmake @@ -0,0 +1,123 @@ +# repo_name is unique to the project +set(repo_name "libtk205") +set(upload_repo "https://github.com/open205/${repo_name}") +set(authenticated_repo ${upload_repo}) + +message(STATUS ${authenticated_repo}) + +set(clone_dir "${PROJECT_SOURCE_DIR}/${repo_name}") + +find_package(Git QUIET) + +if(GIT_FOUND) + if(NOT EXISTS "${clone_dir}") + execute_process(COMMAND ${GIT_EXECUTABLE} clone ${authenticated_repo} + WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} + RESULT_VARIABLE GIT_SUBMOD_RESULT) + if(NOT GIT_SUBMOD_RESULT EQUAL "0") + message(FATAL_ERROR "${GIT_EXECUTABLE} clone ${authenticated_repo} failed with ${GIT_SUBMOD_RESULT}.") + endif() + # else() pull or fetch? + endif() +else() + message(FATAL_ERROR "git not found!") +endif() + +# git branch name query +execute_process(COMMAND ${GIT_EXECUTABLE} rev-parse --abbrev-ref HEAD + WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} + OUTPUT_VARIABLE current_git_branch + OUTPUT_STRIP_TRAILING_WHITESPACE +) +message(STATUS "Current local branch is ${current_git_branch}.") + +execute_process(COMMAND ${GIT_EXECUTABLE} log -1 --pretty=%B + WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} + OUTPUT_VARIABLE last_commit_msg + OUTPUT_STRIP_TRAILING_WHITESPACE +) +message(STATUS "Last commit message on local branch was \"${last_commit_msg}\"") + +execute_process(COMMAND ${GIT_EXECUTABLE} ls-remote --heads --exit-code ${authenticated_repo} ${current_git_branch} + WORKING_DIRECTORY ${clone_dir} + RESULT_VARIABLE exit_code + OUTPUT_VARIABLE output_repo_branches +) +if(exit_code EQUAL "0") + message(STATUS "Branch ${current_git_branch} exists in upload remote.") + execute_process(COMMAND ${GIT_EXECUTABLE} checkout ${current_git_branch} + WORKING_DIRECTORY ${clone_dir} + ) +else() + message(STATUS "Branch ${current_git_branch} must be created in upload remote.") + execute_process(COMMAND ${GIT_EXECUTABLE} checkout -b ${current_git_branch} + WORKING_DIRECTORY ${clone_dir} + ) +# execute_process(COMMAND ${GIT_EXECUTABLE} push -u origin ${current_git_branch} +# WORKING_DIRECTORY ${clone_dir} +# ) +endif() + +# set(include_dest_dir "${clone_dir}/include/${repo_name}") +# set(src_dest_dir "${clone_dir}/src") + +# file(MAKE_DIRECTORY "${include_dest_dir}") +# file(MAKE_DIRECTORY "${src_dest_dir}") + +# # Move/copy generated files +# file(GLOB generated_rs_headers "${PROJECT_SOURCE_DIR}/schema-205/build/include/*.h") +# foreach(filepath ${generated_rs_headers}) +# get_filename_component(filename ${filepath} NAME) +# message(STATUS "Moving ${filepath} to ${include_dest_dir}/${filename}.") +# file(RENAME ${filepath} ${include_dest_dir}/${filename}) +# endforeach(filepath) + +# # file(COPY "${PROJECT_SOURCE_DIR}/include/" # No longer copied from toolkit; exist already in libtk205 repo +# # DESTINATION "${include_dest_dir}" +# # FILES_MATCHING PATTERN *.h) + +# file(COPY "${PROJECT_SOURCE_DIR}/../schema-205/schema205/libtk205_fixed_src/include/" +# DESTINATION "${include_dest_dir}" +# FILES_MATCHING PATTERN *.h) + +# file(GLOB generated_rs_src "${PROJECT_SOURCE_DIR}/schema-205/build/cpp/*.cpp") +# foreach(filepath ${generated_rs_src}) +# get_filename_component(filename ${filepath} NAME) +# message(STATUS "Moving ${filepath} to ${src_dest_dir}/${filename}.") +# file(RENAME ${filepath} ${src_dest_dir}/${filename}) +# endforeach(filepath) + +# # file(COPY "${PROJECT_SOURCE_DIR}/src/" # doesn't exist +# # DESTINATION "${src_dest_dir}" +# # FILES_MATCHING PATTERN *.cpp) + +# file(COPY "${PROJECT_SOURCE_DIR}/../schema-205/schema205/libtk205_fixed_src/src/" +# DESTINATION "${src_dest_dir}" +# FILES_MATCHING PATTERN *.cpp) + +# # file(COPY "${PROJECT_SOURCE_DIR}/test/" # No longer copied from toolkit; exist already in libtk205 repo +# # DESTINATION "${clone_dir}/test" +# # FILES_MATCHING +# # PATTERN *.cpp +# # PATTERN *.hpp) + +# file(COPY "${PROJECT_SOURCE_DIR}/schema-205/examples" +# DESTINATION "${clone_dir}") + +# # git status (see if files changed) +# execute_process(COMMAND ${GIT_EXECUTABLE} status +# WORKING_DIRECTORY ${clone_dir} +# ) + +# # # git add +# # execute_process(COMMAND ${GIT_EXECUTABLE} add include src test examples +# # WORKING_DIRECTORY ${clone_dir} +# # ) +# # # git commit +# # execute_process(COMMAND ${GIT_EXECUTABLE} commit -m "\"${last_commit_msg}\"" +# # WORKING_DIRECTORY ${clone_dir} +# # ) +# # # git push +# # execute_process(COMMAND ${GIT_EXECUTABLE} push +# # WORKING_DIRECTORY ${clone_dir} +# # ) diff --git a/cmake/update_lib_repo_local.cmake b/cmake/update_lib_repo_local.cmake new file mode 100644 index 0000000..cf8ca24 --- /dev/null +++ b/cmake/update_lib_repo_local.cmake @@ -0,0 +1,123 @@ +# # repo_name is unique to the project +set(repo_name "libtk205") +# set(upload_repo "https://github.com/open205/${repo_name}") +# set(authenticated_repo ${upload_repo}) + +# message(STATUS ${authenticated_repo}) + +set(clone_dir "${PROJECT_SOURCE_DIR}/${repo_name}") + +# find_package(Git QUIET) + +# if(GIT_FOUND) +# if(NOT EXISTS "${clone_dir}") +# execute_process(COMMAND ${GIT_EXECUTABLE} clone ${authenticated_repo} +# WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} +# RESULT_VARIABLE GIT_SUBMOD_RESULT) +# if(NOT GIT_SUBMOD_RESULT EQUAL "0") +# message(FATAL_ERROR "${GIT_EXECUTABLE} clone ${authenticated_repo} failed with ${GIT_SUBMOD_RESULT}.") +# endif() +# # else() pull or fetch? +# endif() +# else() +# message(FATAL_ERROR "git not found!") +# endif() + +# # git branch name query +# execute_process(COMMAND ${GIT_EXECUTABLE} rev-parse --abbrev-ref HEAD +# WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} +# OUTPUT_VARIABLE current_git_branch +# OUTPUT_STRIP_TRAILING_WHITESPACE +# ) +# message(STATUS "Current local branch is ${current_git_branch}.") + +# execute_process(COMMAND ${GIT_EXECUTABLE} log -1 --pretty=%B +# WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} +# OUTPUT_VARIABLE last_commit_msg +# OUTPUT_STRIP_TRAILING_WHITESPACE +# ) +# message(STATUS "Last commit message on local branch was \"${last_commit_msg}\"") + +# execute_process(COMMAND ${GIT_EXECUTABLE} ls-remote --heads --exit-code ${authenticated_repo} ${current_git_branch} +# WORKING_DIRECTORY ${clone_dir} +# RESULT_VARIABLE exit_code +# OUTPUT_VARIABLE output_repo_branches +# ) +# if(exit_code EQUAL "0") +# message(STATUS "Branch ${current_git_branch} exists in upload remote.") +# execute_process(COMMAND ${GIT_EXECUTABLE} checkout ${current_git_branch} +# WORKING_DIRECTORY ${clone_dir} +# ) +# else() +# message(STATUS "Branch ${current_git_branch} must be created in upload remote.") +# execute_process(COMMAND ${GIT_EXECUTABLE} checkout -b ${current_git_branch} +# WORKING_DIRECTORY ${clone_dir} +# ) +# # execute_process(COMMAND ${GIT_EXECUTABLE} push -u origin ${current_git_branch} +# # WORKING_DIRECTORY ${clone_dir} +# # ) +# endif() + +set(include_dest_dir "${clone_dir}/include/${repo_name}") +set(src_dest_dir "${clone_dir}/src") + +file(MAKE_DIRECTORY "${include_dest_dir}") +file(MAKE_DIRECTORY "${src_dest_dir}") + +# Move/copy generated files +file(GLOB generated_rs_headers "${PROJECT_SOURCE_DIR}/schema-205/build/include/*.h") +foreach(filepath ${generated_rs_headers}) + get_filename_component(filename ${filepath} NAME) + message(STATUS "Moving ${filepath} to ${include_dest_dir}/${filename}.") + file(RENAME ${filepath} ${include_dest_dir}/${filename}) +endforeach(filepath) + +# file(COPY "${PROJECT_SOURCE_DIR}/include/" # No longer copied from toolkit; exist already in libtk205 repo +# DESTINATION "${include_dest_dir}" +# FILES_MATCHING PATTERN *.h) + +file(COPY "${PROJECT_SOURCE_DIR}/../schema-205/schema205/libtk205_fixed_src/include/" + DESTINATION "${include_dest_dir}" + FILES_MATCHING PATTERN *.h) + +file(GLOB generated_rs_src "${PROJECT_SOURCE_DIR}/schema-205/build/cpp/*.cpp") + foreach(filepath ${generated_rs_src}) + get_filename_component(filename ${filepath} NAME) + message(STATUS "Moving ${filepath} to ${src_dest_dir}/${filename}.") + file(RENAME ${filepath} ${src_dest_dir}/${filename}) + endforeach(filepath) + +# file(COPY "${PROJECT_SOURCE_DIR}/src/" # doesn't exist +# DESTINATION "${src_dest_dir}" +# FILES_MATCHING PATTERN *.cpp) + +file(COPY "${PROJECT_SOURCE_DIR}/../schema-205/schema205/libtk205_fixed_src/src/" + DESTINATION "${src_dest_dir}" + FILES_MATCHING PATTERN *.cpp) + +# file(COPY "${PROJECT_SOURCE_DIR}/test/" # No longer copied from toolkit; exist already in libtk205 repo +# DESTINATION "${clone_dir}/test" +# FILES_MATCHING +# PATTERN *.cpp +# PATTERN *.hpp) + +file(COPY "${PROJECT_SOURCE_DIR}/schema-205/examples" + DESTINATION "${clone_dir}") + +# git status (see if files changed) +execute_process(COMMAND ${GIT_EXECUTABLE} status + WORKING_DIRECTORY ${clone_dir} +) + +# # git add +# execute_process(COMMAND ${GIT_EXECUTABLE} add include src test examples +# WORKING_DIRECTORY ${clone_dir} +# ) +# # git commit +# execute_process(COMMAND ${GIT_EXECUTABLE} commit -m "\"${last_commit_msg}\"" +# WORKING_DIRECTORY ${clone_dir} +# ) +# # git push +# execute_process(COMMAND ${GIT_EXECUTABLE} push +# WORKING_DIRECTORY ${clone_dir} +# ) diff --git a/schema-205 b/schema-205 index 5b9c88b..fd0e199 160000 --- a/schema-205 +++ b/schema-205 @@ -1 +1 @@ -Subproject commit 5b9c88bc056bba71f5256329175050cb31809c03 +Subproject commit fd0e199ab92de5eb827abd2084269531db479f41 From b88112c9d41d78be14da57eeeb4357354047b3f3 Mon Sep 17 00:00:00 2001 From: Tanaya Mankad Date: Tue, 16 May 2023 15:53:11 -0600 Subject: [PATCH 17/34] Update paths. --- CMakeLists.txt | 3 ++- schema-205 | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 79fa39d..6a50a90 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -33,7 +33,7 @@ foreach(schema IN LISTS RS_schemas) endforeach() execute_process( - COMMAND ${CMAKE_COMMAND} -DPROJECT_SOURCE_DIR=${PROJECT_SOURCE_DIR} -P "../cmake/get_lib_repo_local.cmake" + COMMAND ${CMAKE_COMMAND} -DPROJECT_SOURCE_DIR=${PROJECT_SOURCE_DIR} -P "cmake/get_lib_repo_local.cmake" ) # Runs if OUTPUT is missing, or if OUTPUT exists BUT file DEPENDencies have changed @@ -48,6 +48,7 @@ add_custom_command(OUTPUT ${rs_headers} ${rs_src} ${factory_headers} ${factory_s add_custom_target(libtk205_generator ALL DEPENDS ${rs_headers} ${rs_src} ${factory_headers} ${factory_src}) + # option( BUILD_TK205_TESTING "Build libtk205 testing targets" ON ) # # Set up testing/coverage diff --git a/schema-205 b/schema-205 index fd0e199..ccd73c8 160000 --- a/schema-205 +++ b/schema-205 @@ -1 +1 @@ -Subproject commit fd0e199ab92de5eb827abd2084269531db479f41 +Subproject commit ccd73c8d8df080280951a8e276240ec0a6aa1cb6 From 968783fd2772b34f246a4ead06955786a33ab510 Mon Sep 17 00:00:00 2001 From: Tanaya Mankad Date: Tue, 16 May 2023 16:06:11 -0600 Subject: [PATCH 18/34] Clean up commented code. --- CMakeLists.txt | 18 +++----- cmake/get_lib_repo_local.cmake | 64 ---------------------------- cmake/update_lib_repo_local.cmake | 71 ------------------------------- 3 files changed, 5 insertions(+), 148 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 6a50a90..fb651ec 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -36,8 +36,12 @@ execute_process( COMMAND ${CMAKE_COMMAND} -DPROJECT_SOURCE_DIR=${PROJECT_SOURCE_DIR} -P "cmake/get_lib_repo_local.cmake" ) +add_custom_target(libtk205_generator ALL + DEPENDS ${rs_headers} ${rs_src} ${factory_headers} ${factory_src}) + # Runs if OUTPUT is missing, or if OUTPUT exists BUT file DEPENDencies have changed -# If OUTPUT exists and DEPENDS files haven't changed, the command is not run (?) +# If OUTPUT exists and DEPENDS files haven't changed, the command is not run. +# If no target depends on its outputs, the command is not run (see libtk205_generator custom target) add_custom_command(OUTPUT ${rs_headers} ${rs_src} ${factory_headers} ${factory_src} COMMAND poetry run doit cpp COMMAND ${CMAKE_COMMAND} -DPROJECT_SOURCE_DIR=${PROJECT_SOURCE_DIR} -P "../cmake/update_lib_repo_local.cmake" @@ -45,17 +49,5 @@ add_custom_command(OUTPUT ${rs_headers} ${rs_src} ${factory_headers} ${factory_s COMMENT "Generate libtk205 files from YAML schema" WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}/schema-205") -add_custom_target(libtk205_generator ALL - DEPENDS ${rs_headers} ${rs_src} ${factory_headers} ${factory_src}) - - -# option( BUILD_TK205_TESTING "Build libtk205 testing targets" ON ) - -# # Set up testing/coverage -# if (BUILD_TK205_TESTING) -# set(TEST205_INPUT_EXAMPLES_DIR "${PROJECT_SOURCE_DIR}/schema-205") -# enable_testing() -# endif() - add_subdirectory(libtk205) diff --git a/cmake/get_lib_repo_local.cmake b/cmake/get_lib_repo_local.cmake index 6a09d6a..40966c3 100644 --- a/cmake/get_lib_repo_local.cmake +++ b/cmake/get_lib_repo_local.cmake @@ -57,67 +57,3 @@ else() # WORKING_DIRECTORY ${clone_dir} # ) endif() - -# set(include_dest_dir "${clone_dir}/include/${repo_name}") -# set(src_dest_dir "${clone_dir}/src") - -# file(MAKE_DIRECTORY "${include_dest_dir}") -# file(MAKE_DIRECTORY "${src_dest_dir}") - -# # Move/copy generated files -# file(GLOB generated_rs_headers "${PROJECT_SOURCE_DIR}/schema-205/build/include/*.h") -# foreach(filepath ${generated_rs_headers}) -# get_filename_component(filename ${filepath} NAME) -# message(STATUS "Moving ${filepath} to ${include_dest_dir}/${filename}.") -# file(RENAME ${filepath} ${include_dest_dir}/${filename}) -# endforeach(filepath) - -# # file(COPY "${PROJECT_SOURCE_DIR}/include/" # No longer copied from toolkit; exist already in libtk205 repo -# # DESTINATION "${include_dest_dir}" -# # FILES_MATCHING PATTERN *.h) - -# file(COPY "${PROJECT_SOURCE_DIR}/../schema-205/schema205/libtk205_fixed_src/include/" -# DESTINATION "${include_dest_dir}" -# FILES_MATCHING PATTERN *.h) - -# file(GLOB generated_rs_src "${PROJECT_SOURCE_DIR}/schema-205/build/cpp/*.cpp") -# foreach(filepath ${generated_rs_src}) -# get_filename_component(filename ${filepath} NAME) -# message(STATUS "Moving ${filepath} to ${src_dest_dir}/${filename}.") -# file(RENAME ${filepath} ${src_dest_dir}/${filename}) -# endforeach(filepath) - -# # file(COPY "${PROJECT_SOURCE_DIR}/src/" # doesn't exist -# # DESTINATION "${src_dest_dir}" -# # FILES_MATCHING PATTERN *.cpp) - -# file(COPY "${PROJECT_SOURCE_DIR}/../schema-205/schema205/libtk205_fixed_src/src/" -# DESTINATION "${src_dest_dir}" -# FILES_MATCHING PATTERN *.cpp) - -# # file(COPY "${PROJECT_SOURCE_DIR}/test/" # No longer copied from toolkit; exist already in libtk205 repo -# # DESTINATION "${clone_dir}/test" -# # FILES_MATCHING -# # PATTERN *.cpp -# # PATTERN *.hpp) - -# file(COPY "${PROJECT_SOURCE_DIR}/schema-205/examples" -# DESTINATION "${clone_dir}") - -# # git status (see if files changed) -# execute_process(COMMAND ${GIT_EXECUTABLE} status -# WORKING_DIRECTORY ${clone_dir} -# ) - -# # # git add -# # execute_process(COMMAND ${GIT_EXECUTABLE} add include src test examples -# # WORKING_DIRECTORY ${clone_dir} -# # ) -# # # git commit -# # execute_process(COMMAND ${GIT_EXECUTABLE} commit -m "\"${last_commit_msg}\"" -# # WORKING_DIRECTORY ${clone_dir} -# # ) -# # # git push -# # execute_process(COMMAND ${GIT_EXECUTABLE} push -# # WORKING_DIRECTORY ${clone_dir} -# # ) diff --git a/cmake/update_lib_repo_local.cmake b/cmake/update_lib_repo_local.cmake index cf8ca24..432017c 100644 --- a/cmake/update_lib_repo_local.cmake +++ b/cmake/update_lib_repo_local.cmake @@ -1,63 +1,6 @@ -# # repo_name is unique to the project set(repo_name "libtk205") -# set(upload_repo "https://github.com/open205/${repo_name}") -# set(authenticated_repo ${upload_repo}) - -# message(STATUS ${authenticated_repo}) - set(clone_dir "${PROJECT_SOURCE_DIR}/${repo_name}") -# find_package(Git QUIET) - -# if(GIT_FOUND) -# if(NOT EXISTS "${clone_dir}") -# execute_process(COMMAND ${GIT_EXECUTABLE} clone ${authenticated_repo} -# WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} -# RESULT_VARIABLE GIT_SUBMOD_RESULT) -# if(NOT GIT_SUBMOD_RESULT EQUAL "0") -# message(FATAL_ERROR "${GIT_EXECUTABLE} clone ${authenticated_repo} failed with ${GIT_SUBMOD_RESULT}.") -# endif() -# # else() pull or fetch? -# endif() -# else() -# message(FATAL_ERROR "git not found!") -# endif() - -# # git branch name query -# execute_process(COMMAND ${GIT_EXECUTABLE} rev-parse --abbrev-ref HEAD -# WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} -# OUTPUT_VARIABLE current_git_branch -# OUTPUT_STRIP_TRAILING_WHITESPACE -# ) -# message(STATUS "Current local branch is ${current_git_branch}.") - -# execute_process(COMMAND ${GIT_EXECUTABLE} log -1 --pretty=%B -# WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} -# OUTPUT_VARIABLE last_commit_msg -# OUTPUT_STRIP_TRAILING_WHITESPACE -# ) -# message(STATUS "Last commit message on local branch was \"${last_commit_msg}\"") - -# execute_process(COMMAND ${GIT_EXECUTABLE} ls-remote --heads --exit-code ${authenticated_repo} ${current_git_branch} -# WORKING_DIRECTORY ${clone_dir} -# RESULT_VARIABLE exit_code -# OUTPUT_VARIABLE output_repo_branches -# ) -# if(exit_code EQUAL "0") -# message(STATUS "Branch ${current_git_branch} exists in upload remote.") -# execute_process(COMMAND ${GIT_EXECUTABLE} checkout ${current_git_branch} -# WORKING_DIRECTORY ${clone_dir} -# ) -# else() -# message(STATUS "Branch ${current_git_branch} must be created in upload remote.") -# execute_process(COMMAND ${GIT_EXECUTABLE} checkout -b ${current_git_branch} -# WORKING_DIRECTORY ${clone_dir} -# ) -# # execute_process(COMMAND ${GIT_EXECUTABLE} push -u origin ${current_git_branch} -# # WORKING_DIRECTORY ${clone_dir} -# # ) -# endif() - set(include_dest_dir "${clone_dir}/include/${repo_name}") set(src_dest_dir "${clone_dir}/src") @@ -72,10 +15,6 @@ foreach(filepath ${generated_rs_headers}) file(RENAME ${filepath} ${include_dest_dir}/${filename}) endforeach(filepath) -# file(COPY "${PROJECT_SOURCE_DIR}/include/" # No longer copied from toolkit; exist already in libtk205 repo -# DESTINATION "${include_dest_dir}" -# FILES_MATCHING PATTERN *.h) - file(COPY "${PROJECT_SOURCE_DIR}/../schema-205/schema205/libtk205_fixed_src/include/" DESTINATION "${include_dest_dir}" FILES_MATCHING PATTERN *.h) @@ -87,20 +26,10 @@ file(GLOB generated_rs_src "${PROJECT_SOURCE_DIR}/schema-205/build/cpp/*.cpp") file(RENAME ${filepath} ${src_dest_dir}/${filename}) endforeach(filepath) -# file(COPY "${PROJECT_SOURCE_DIR}/src/" # doesn't exist -# DESTINATION "${src_dest_dir}" -# FILES_MATCHING PATTERN *.cpp) - file(COPY "${PROJECT_SOURCE_DIR}/../schema-205/schema205/libtk205_fixed_src/src/" DESTINATION "${src_dest_dir}" FILES_MATCHING PATTERN *.cpp) -# file(COPY "${PROJECT_SOURCE_DIR}/test/" # No longer copied from toolkit; exist already in libtk205 repo -# DESTINATION "${clone_dir}/test" -# FILES_MATCHING -# PATTERN *.cpp -# PATTERN *.hpp) - file(COPY "${PROJECT_SOURCE_DIR}/schema-205/examples" DESTINATION "${clone_dir}") From 6a05a7e20791fa3e336b0cef814c5a2f8799cbf9 Mon Sep 17 00:00:00 2001 From: Tanaya Mankad Date: Wed, 17 May 2023 09:25:58 -0600 Subject: [PATCH 19/34] Begin updating paths to pathlib. --- schema-205 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/schema-205 b/schema-205 index ccd73c8..498ef9f 160000 --- a/schema-205 +++ b/schema-205 @@ -1 +1 @@ -Subproject commit ccd73c8d8df080280951a8e276240ec0a6aa1cb6 +Subproject commit 498ef9f9ac2215c773a360a9d7fcab1e0bff48bf From 4cbcfb50b2fb93cefa284ca9fdf3fa9988c7b8e3 Mon Sep 17 00:00:00 2001 From: Tanaya Mankad Date: Wed, 17 May 2023 13:20:46 -0600 Subject: [PATCH 20/34] Automate libtk205 build with cmake directives and doit. --- CMakeLists.txt | 38 +++++++++++++++++++------------------- dodo.py | 6 +++--- 2 files changed, 22 insertions(+), 22 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index fb651ec..5312305 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -32,22 +32,22 @@ foreach(schema IN LISTS RS_schemas) endif() endforeach() -execute_process( - COMMAND ${CMAKE_COMMAND} -DPROJECT_SOURCE_DIR=${PROJECT_SOURCE_DIR} -P "cmake/get_lib_repo_local.cmake" -) - -add_custom_target(libtk205_generator ALL - DEPENDS ${rs_headers} ${rs_src} ${factory_headers} ${factory_src}) - -# Runs if OUTPUT is missing, or if OUTPUT exists BUT file DEPENDencies have changed -# If OUTPUT exists and DEPENDS files haven't changed, the command is not run. -# If no target depends on its outputs, the command is not run (see libtk205_generator custom target) -add_custom_command(OUTPUT ${rs_headers} ${rs_src} ${factory_headers} ${factory_src} - COMMAND poetry run doit cpp - COMMAND ${CMAKE_COMMAND} -DPROJECT_SOURCE_DIR=${PROJECT_SOURCE_DIR} -P "../cmake/update_lib_repo_local.cmake" - DEPENDS ${RS_schemas} - COMMENT "Generate libtk205 files from YAML schema" - WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}/schema-205") - -add_subdirectory(libtk205) - +if(BUILD_LIBTK205) + execute_process( + COMMAND ${CMAKE_COMMAND} -DPROJECT_SOURCE_DIR=${PROJECT_SOURCE_DIR} -P "cmake/get_lib_repo_local.cmake" + ) + add_subdirectory(libtk205) + + add_custom_target(libtk205_generator ALL + DEPENDS ${rs_headers} ${rs_src} ${factory_headers} ${factory_src}) + + # Runs if OUTPUT is missing, or if OUTPUT exists BUT file DEPENDencies have changed + # If OUTPUT exists and DEPENDS files haven't changed, the command is not run. + # If no target depends on its outputs, the command is not run (see libtk205_generator custom target) + add_custom_command(OUTPUT ${rs_headers} ${rs_src} ${factory_headers} ${factory_src} + COMMAND poetry run doit cpp + COMMAND ${CMAKE_COMMAND} -DPROJECT_SOURCE_DIR=${PROJECT_SOURCE_DIR} -P "../cmake/update_lib_repo_local.cmake" + DEPENDS ${RS_schemas} + COMMENT "Generate libtk205 files from YAML schema" + WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}/schema-205") +endif() \ No newline at end of file diff --git a/dodo.py b/dodo.py index 35d6fc9..af36b96 100644 --- a/dodo.py +++ b/dodo.py @@ -9,7 +9,7 @@ EXAMPLES_OUTPUT_PATH = os.path.join(BUILD_PATH,"examples") TEMPLATE_OUTPUT_PATH = os.path.join(BUILD_PATH,"templates") TEMPLATE_CONFIG = os.path.join('config','templates.json') -LIB_BUILD_PATH = os.path.join(BUILD_PATH,"libtk205") +LIB_BUILD_PATH = BUILD_PATH TK205_SOURCE_PATH = 'tk205' SCHEMA205_SOURCE_PATH = os.path.join("schema-205","schema205") @@ -175,7 +175,7 @@ def task_libtk205(): 'task_dep': ['build_schema'], 'actions': [ (create_folder, [LIB_BUILD_PATH]), - f'cmake -B {LIB_BUILD_PATH}', + f'cmake -B {LIB_BUILD_PATH} -DBUILD_LIBTK205=ON', f'cmake --build {LIB_BUILD_PATH} --config Release' ], 'clean': ['doit -d schema-205 clean cpp'], @@ -186,6 +186,6 @@ def task_libtk205_tests(): return { 'task_dep': ['libtk205'], 'actions': [ - f'cd {LIB_BUILD_PATH} && ctest', + f'cd {LIB_BUILD_PATH}/libtk205 && ctest', ], } From 3103fb5cc396edb3dc92396be7f4261143d23894 Mon Sep 17 00:00:00 2001 From: Tanaya Mankad Date: Mon, 22 May 2023 12:54:56 -0600 Subject: [PATCH 21/34] Remove unused files. --- schema-205 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/schema-205 b/schema-205 index 498ef9f..6016ee5 160000 --- a/schema-205 +++ b/schema-205 @@ -1 +1 @@ -Subproject commit 498ef9f9ac2215c773a360a9d7fcab1e0bff48bf +Subproject commit 6016ee5546be4d7fdd466de6734485392c360486 From 9e58f9e0f0b4ecb2994664a59dae60f4aa093b89 Mon Sep 17 00:00:00 2001 From: Tanaya Mankad Date: Mon, 22 May 2023 14:56:16 -0600 Subject: [PATCH 22/34] Add exporting code back to CI. --- .github/workflows/build-and-test.yml | 2 +- cmake/get_lib_repo_local.cmake | 6 ++--- cmake/update_lib_repo_ci.cmake | 34 ++++++++++++++++++++++++++++ cmake/update_lib_repo_local.cmake | 13 ----------- 4 files changed, 38 insertions(+), 17 deletions(-) create mode 100644 cmake/update_lib_repo_ci.cmake diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index 60d3fa5..0e00f3c 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -27,5 +27,5 @@ jobs: run: poetry run doit - name: Export libtk205 source if: matrix.os == 'ubuntu-latest' && matrix.python-version == '3.10' - run: cmake -DPA_TOKEN="${{secrets.CI_PA_TOKEN}}" -DPROJECT_SOURCE_DIR="${{github.workspace}}/libtk205" -P "${{github.workspace}}/libtk205/cmake/update_lib_repo.cmake" + run: cmake -DPA_TOKEN="${{secrets.CI_PA_TOKEN}}" -DPROJECT_SOURCE_DIR="${{github.workspace}}" -P "${{github.workspace}}/cmake/update_lib_repo_ci.cmake" diff --git a/cmake/get_lib_repo_local.cmake b/cmake/get_lib_repo_local.cmake index 40966c3..69c2a21 100644 --- a/cmake/get_lib_repo_local.cmake +++ b/cmake/get_lib_repo_local.cmake @@ -53,7 +53,7 @@ else() execute_process(COMMAND ${GIT_EXECUTABLE} checkout -b ${current_git_branch} WORKING_DIRECTORY ${clone_dir} ) -# execute_process(COMMAND ${GIT_EXECUTABLE} push -u origin ${current_git_branch} -# WORKING_DIRECTORY ${clone_dir} -# ) + execute_process(COMMAND ${GIT_EXECUTABLE} push -u origin ${current_git_branch} + WORKING_DIRECTORY ${clone_dir} + ) endif() diff --git a/cmake/update_lib_repo_ci.cmake b/cmake/update_lib_repo_ci.cmake new file mode 100644 index 0000000..e7d8e48 --- /dev/null +++ b/cmake/update_lib_repo_ci.cmake @@ -0,0 +1,34 @@ +# repo_name is unique to the project +set(repo_name "libtk205") +set(upload_repo "github.com/open205/${repo_name}") +set(authenticated_repo "https://${PA_TOKEN}:x-oauth-basic@${upload_repo}") # PA_TOKEN is set by GitHub Actions +set(clone_dir "${PROJECT_SOURCE_DIR}/${repo_name}") + +# Collect relevant info from toolkit-205: +execute_process(COMMAND ${GIT_EXECUTABLE} log -1 --pretty=%B + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} + OUTPUT_VARIABLE last_commit_msg + OUTPUT_STRIP_TRAILING_WHITESPACE +) +message(STATUS "Last commit message on local branch was \"${last_commit_msg}\"") + +# libtk205 remote side: +# git config +execute_process(COMMAND ${GIT_EXECUTABLE} config user.name "Actions CI" + WORKING_DIRECTORY ${clone_dir} +) +execute_process(COMMAND ${GIT_EXECUTABLE} config user.email "ci.bigladdersoftware.com" + WORKING_DIRECTORY ${clone_dir} +) +# git add +execute_process(COMMAND ${GIT_EXECUTABLE} add include src test examples + WORKING_DIRECTORY ${clone_dir} +) +# git commit +execute_process(COMMAND ${GIT_EXECUTABLE} commit -m "\"${last_commit_msg}\"" + WORKING_DIRECTORY ${clone_dir} +) +# git push +execute_process(COMMAND ${GIT_EXECUTABLE} push + WORKING_DIRECTORY ${clone_dir} +) diff --git a/cmake/update_lib_repo_local.cmake b/cmake/update_lib_repo_local.cmake index 432017c..ec30b49 100644 --- a/cmake/update_lib_repo_local.cmake +++ b/cmake/update_lib_repo_local.cmake @@ -37,16 +37,3 @@ file(COPY "${PROJECT_SOURCE_DIR}/schema-205/examples" execute_process(COMMAND ${GIT_EXECUTABLE} status WORKING_DIRECTORY ${clone_dir} ) - -# # git add -# execute_process(COMMAND ${GIT_EXECUTABLE} add include src test examples -# WORKING_DIRECTORY ${clone_dir} -# ) -# # git commit -# execute_process(COMMAND ${GIT_EXECUTABLE} commit -m "\"${last_commit_msg}\"" -# WORKING_DIRECTORY ${clone_dir} -# ) -# # git push -# execute_process(COMMAND ${GIT_EXECUTABLE} push -# WORKING_DIRECTORY ${clone_dir} -# ) From 7a5e92a8aeeaeb674e75938c947937ad080540f5 Mon Sep 17 00:00:00 2001 From: Tanaya Mankad Date: Mon, 22 May 2023 15:14:38 -0600 Subject: [PATCH 23/34] Try again getting commit message. --- cmake/update_lib_repo_ci.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake/update_lib_repo_ci.cmake b/cmake/update_lib_repo_ci.cmake index e7d8e48..6edf821 100644 --- a/cmake/update_lib_repo_ci.cmake +++ b/cmake/update_lib_repo_ci.cmake @@ -6,7 +6,7 @@ set(clone_dir "${PROJECT_SOURCE_DIR}/${repo_name}") # Collect relevant info from toolkit-205: execute_process(COMMAND ${GIT_EXECUTABLE} log -1 --pretty=%B - WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} + WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} OUTPUT_VARIABLE last_commit_msg OUTPUT_STRIP_TRAILING_WHITESPACE ) From 8d98aca1e7fd9e1abd82b2dcce87f24974eaa122 Mon Sep 17 00:00:00 2001 From: Tanaya Mankad Date: Tue, 23 May 2023 08:43:48 -0600 Subject: [PATCH 24/34] Add diagnostic messages. --- cmake/get_lib_repo_local.cmake | 6 +++--- cmake/update_lib_repo_ci.cmake | 14 ++++++++++++++ 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/cmake/get_lib_repo_local.cmake b/cmake/get_lib_repo_local.cmake index 69c2a21..e95b7c4 100644 --- a/cmake/get_lib_repo_local.cmake +++ b/cmake/get_lib_repo_local.cmake @@ -43,12 +43,12 @@ execute_process(COMMAND ${GIT_EXECUTABLE} ls-remote --heads --exit-code ${authen RESULT_VARIABLE exit_code OUTPUT_VARIABLE output_repo_branches ) -if(exit_code EQUAL "0") - message(STATUS "Branch ${current_git_branch} exists in upload remote.") +if(exit_code EQUAL "0") # Successful communication with remote (but matching refs status unknown) + message(STATUS "Checking out branch ${current_git_branch} from ${repo_name} remote.") execute_process(COMMAND ${GIT_EXECUTABLE} checkout ${current_git_branch} WORKING_DIRECTORY ${clone_dir} ) -else() +elseif(exit_code EQUAL "2") # No matching refs in remote message(STATUS "Branch ${current_git_branch} must be created in upload remote.") execute_process(COMMAND ${GIT_EXECUTABLE} checkout -b ${current_git_branch} WORKING_DIRECTORY ${clone_dir} diff --git a/cmake/update_lib_repo_ci.cmake b/cmake/update_lib_repo_ci.cmake index 6edf821..bde4c91 100644 --- a/cmake/update_lib_repo_ci.cmake +++ b/cmake/update_lib_repo_ci.cmake @@ -4,7 +4,16 @@ set(upload_repo "github.com/open205/${repo_name}") set(authenticated_repo "https://${PA_TOKEN}:x-oauth-basic@${upload_repo}") # PA_TOKEN is set by GitHub Actions set(clone_dir "${PROJECT_SOURCE_DIR}/${repo_name}") +message(STATUS "Working directory: ${PROJECT_SOURCE_DIR}.") # Collect relevant info from toolkit-205: +# git branch name query +execute_process(COMMAND ${GIT_EXECUTABLE} rev-parse --abbrev-ref HEAD + WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} + OUTPUT_VARIABLE current_git_branch + OUTPUT_STRIP_TRAILING_WHITESPACE +) +message(STATUS "Current local branch is ${current_git_branch}.") + execute_process(COMMAND ${GIT_EXECUTABLE} log -1 --pretty=%B WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} OUTPUT_VARIABLE last_commit_msg @@ -12,6 +21,7 @@ execute_process(COMMAND ${GIT_EXECUTABLE} log -1 --pretty=%B ) message(STATUS "Last commit message on local branch was \"${last_commit_msg}\"") +message(STATUS "Working directory: ${clone_dir}.") # libtk205 remote side: # git config execute_process(COMMAND ${GIT_EXECUTABLE} config user.name "Actions CI" @@ -24,6 +34,10 @@ execute_process(COMMAND ${GIT_EXECUTABLE} config user.email "ci.bigladdersoftwar execute_process(COMMAND ${GIT_EXECUTABLE} add include src test examples WORKING_DIRECTORY ${clone_dir} ) +# git status (see if files changed) +execute_process(COMMAND ${GIT_EXECUTABLE} status + WORKING_DIRECTORY ${clone_dir} +) # git commit execute_process(COMMAND ${GIT_EXECUTABLE} commit -m "\"${last_commit_msg}\"" WORKING_DIRECTORY ${clone_dir} From 791f585b6a7ab41222c06051fa70cdbc5f129b72 Mon Sep 17 00:00:00 2001 From: Tanaya Mankad Date: Tue, 23 May 2023 10:14:16 -0600 Subject: [PATCH 25/34] Add explicit find_package(git). --- cmake/update_lib_repo_ci.cmake | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/cmake/update_lib_repo_ci.cmake b/cmake/update_lib_repo_ci.cmake index bde4c91..b07bca6 100644 --- a/cmake/update_lib_repo_ci.cmake +++ b/cmake/update_lib_repo_ci.cmake @@ -4,6 +4,22 @@ set(upload_repo "github.com/open205/${repo_name}") set(authenticated_repo "https://${PA_TOKEN}:x-oauth-basic@${upload_repo}") # PA_TOKEN is set by GitHub Actions set(clone_dir "${PROJECT_SOURCE_DIR}/${repo_name}") +find_package(Git QUIET) + +if(GIT_FOUND) + if(NOT EXISTS "${clone_dir}") + execute_process(COMMAND ${GIT_EXECUTABLE} clone ${authenticated_repo} + WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} + RESULT_VARIABLE GIT_SUBMOD_RESULT) + if(NOT GIT_SUBMOD_RESULT EQUAL "0") + message(FATAL_ERROR "${GIT_EXECUTABLE} clone ${authenticated_repo} failed with ${GIT_SUBMOD_RESULT}.") + endif() + # else() pull or fetch? + endif() +else() + message(FATAL_ERROR "git not found!") +endif() + message(STATUS "Working directory: ${PROJECT_SOURCE_DIR}.") # Collect relevant info from toolkit-205: # git branch name query From 6730743a26fdbedbc2b70b6caddbe5a4ac4ccc58 Mon Sep 17 00:00:00 2001 From: Tanaya Mankad Date: Tue, 23 May 2023 12:11:31 -0600 Subject: [PATCH 26/34] Make sure to use authenticated repo for original clone prior to build. --- cmake/get_lib_repo_local.cmake | 6 +++++- cmake/update_lib_repo_ci.cmake | 24 +++--------------------- 2 files changed, 8 insertions(+), 22 deletions(-) diff --git a/cmake/get_lib_repo_local.cmake b/cmake/get_lib_repo_local.cmake index e95b7c4..27ae9cd 100644 --- a/cmake/get_lib_repo_local.cmake +++ b/cmake/get_lib_repo_local.cmake @@ -1,7 +1,11 @@ # repo_name is unique to the project set(repo_name "libtk205") set(upload_repo "https://github.com/open205/${repo_name}") -set(authenticated_repo ${upload_repo}) +if(${PA_TOKEN}) + set(authenticated_repo "https://${PA_TOKEN}:x-oauth-basic@${upload_repo}") # PA_TOKEN is set by GitHub Actions +else() + set(authenticated_repo ${upload_repo}) +endif() message(STATUS ${authenticated_repo}) diff --git a/cmake/update_lib_repo_ci.cmake b/cmake/update_lib_repo_ci.cmake index b07bca6..4c12130 100644 --- a/cmake/update_lib_repo_ci.cmake +++ b/cmake/update_lib_repo_ci.cmake @@ -6,36 +6,18 @@ set(clone_dir "${PROJECT_SOURCE_DIR}/${repo_name}") find_package(Git QUIET) -if(GIT_FOUND) - if(NOT EXISTS "${clone_dir}") - execute_process(COMMAND ${GIT_EXECUTABLE} clone ${authenticated_repo} - WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} - RESULT_VARIABLE GIT_SUBMOD_RESULT) - if(NOT GIT_SUBMOD_RESULT EQUAL "0") - message(FATAL_ERROR "${GIT_EXECUTABLE} clone ${authenticated_repo} failed with ${GIT_SUBMOD_RESULT}.") - endif() - # else() pull or fetch? - endif() -else() +if(NOT GIT_FOUND) message(FATAL_ERROR "git not found!") endif() message(STATUS "Working directory: ${PROJECT_SOURCE_DIR}.") # Collect relevant info from toolkit-205: -# git branch name query -execute_process(COMMAND ${GIT_EXECUTABLE} rev-parse --abbrev-ref HEAD - WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} - OUTPUT_VARIABLE current_git_branch - OUTPUT_STRIP_TRAILING_WHITESPACE -) -message(STATUS "Current local branch is ${current_git_branch}.") - execute_process(COMMAND ${GIT_EXECUTABLE} log -1 --pretty=%B WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} OUTPUT_VARIABLE last_commit_msg OUTPUT_STRIP_TRAILING_WHITESPACE ) -message(STATUS "Last commit message on local branch was \"${last_commit_msg}\"") +message(STATUS "Last commit message on ${PROJECT_NAME} branch was \"${last_commit_msg}\"") message(STATUS "Working directory: ${clone_dir}.") # libtk205 remote side: @@ -52,7 +34,7 @@ execute_process(COMMAND ${GIT_EXECUTABLE} add include src test examples ) # git status (see if files changed) execute_process(COMMAND ${GIT_EXECUTABLE} status - WORKING_DIRECTORY ${clone_dir} + WORKING_DIRECTORY ${clone_dir} ) # git commit execute_process(COMMAND ${GIT_EXECUTABLE} commit -m "\"${last_commit_msg}\"" From f1b220a7383c4a4cea6e851d1457df0ec1dc56c3 Mon Sep 17 00:00:00 2001 From: Tanaya Mankad Date: Tue, 23 May 2023 20:14:32 -0600 Subject: [PATCH 27/34] Attempt to pass PA_TOKEN to doit (and further to cmake script). --- .github/workflows/build-and-test.yml | 5 ++++- dodo.py | 8 +++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index 0e00f3c..fd41bc9 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -24,7 +24,10 @@ jobs: with: python-version: ${{ matrix.python-version }} - name: Build and test - run: poetry run doit + run: | + poetry run doit cbor yaml xlsx json templates test web + poetry run doit libtk205 --PAT "${{secrets.CI_PA_TOKEN}}" + poetry run doit libtk205_tests - name: Export libtk205 source if: matrix.os == 'ubuntu-latest' && matrix.python-version == '3.10' run: cmake -DPA_TOKEN="${{secrets.CI_PA_TOKEN}}" -DPROJECT_SOURCE_DIR="${{github.workspace}}" -P "${{github.workspace}}/cmake/update_lib_repo_ci.cmake" diff --git a/dodo.py b/dodo.py index af36b96..e169b00 100644 --- a/dodo.py +++ b/dodo.py @@ -1,5 +1,6 @@ import os import tk205 +import subprocess from doit.tools import create_folder BUILD_PATH = "build" @@ -171,11 +172,16 @@ def task_web(): def task_libtk205(): '''Build libtk205''' + def configure_build(PAT): + subprocess.run(['cmake', f'-B {LIB_BUILD_PATH}', f'-DPA_TOKEN={PAT}', '-DBUILD_LIBTK205=ON']) return { 'task_dep': ['build_schema'], + 'params':[{'name':'PAT', + 'long': 'PAT', + 'default': ''}], 'actions': [ (create_folder, [LIB_BUILD_PATH]), - f'cmake -B {LIB_BUILD_PATH} -DBUILD_LIBTK205=ON', + (configure_build, ), f'cmake --build {LIB_BUILD_PATH} --config Release' ], 'clean': ['doit -d schema-205 clean cpp'], From 133763da67686650f170a7e39e1fe7b6f94d2929 Mon Sep 17 00:00:00 2001 From: Tanaya Mankad Date: Tue, 23 May 2023 20:20:07 -0600 Subject: [PATCH 28/34] Try different way of calling doit tasks. --- .github/workflows/build-and-test.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index fd41bc9..7f3d7d6 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -25,7 +25,9 @@ jobs: python-version: ${{ matrix.python-version }} - name: Build and test run: | - poetry run doit cbor yaml xlsx json templates test web + poetry run doit ignore libtk205 + poetry run doit + poetry run doit forget libtk205 poetry run doit libtk205 --PAT "${{secrets.CI_PA_TOKEN}}" poetry run doit libtk205_tests - name: Export libtk205 source From 4c70cb8667a715ebd9798881467c11d05cfc4d23 Mon Sep 17 00:00:00 2001 From: Tanaya Mankad Date: Tue, 23 May 2023 20:27:59 -0600 Subject: [PATCH 29/34] Pass PA_TOKEN from main CMakeLists into script. --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 5312305..bc26054 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -34,7 +34,7 @@ endforeach() if(BUILD_LIBTK205) execute_process( - COMMAND ${CMAKE_COMMAND} -DPROJECT_SOURCE_DIR=${PROJECT_SOURCE_DIR} -P "cmake/get_lib_repo_local.cmake" + COMMAND ${CMAKE_COMMAND} -DPA_TOKEN=${PA_TOKEN} -DPROJECT_SOURCE_DIR=${PROJECT_SOURCE_DIR} -P "cmake/get_lib_repo_local.cmake" ) add_subdirectory(libtk205) From b2e73f8814bce8610f5c45c9a07db242f2ac0e43 Mon Sep 17 00:00:00 2001 From: Tanaya Mankad Date: Wed, 24 May 2023 11:36:50 -0600 Subject: [PATCH 30/34] Authenticate push separately in its own context. --- cmake/update_lib_repo_ci.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake/update_lib_repo_ci.cmake b/cmake/update_lib_repo_ci.cmake index 4c12130..1689758 100644 --- a/cmake/update_lib_repo_ci.cmake +++ b/cmake/update_lib_repo_ci.cmake @@ -41,6 +41,6 @@ execute_process(COMMAND ${GIT_EXECUTABLE} commit -m "\"${last_commit_msg}\"" WORKING_DIRECTORY ${clone_dir} ) # git push -execute_process(COMMAND ${GIT_EXECUTABLE} push +execute_process(COMMAND ${GIT_EXECUTABLE} push ${authenticated_repo} WORKING_DIRECTORY ${clone_dir} ) From 3a39ce320a2873bbcf917f16ed5842ef5f5df6e8 Mon Sep 17 00:00:00 2001 From: Tanaya Mankad Date: Wed, 24 May 2023 13:29:47 -0600 Subject: [PATCH 31/34] Build testing so libtk205_tests can run. --- dodo.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dodo.py b/dodo.py index e169b00..c644d15 100644 --- a/dodo.py +++ b/dodo.py @@ -173,7 +173,7 @@ def task_web(): def task_libtk205(): '''Build libtk205''' def configure_build(PAT): - subprocess.run(['cmake', f'-B {LIB_BUILD_PATH}', f'-DPA_TOKEN={PAT}', '-DBUILD_LIBTK205=ON']) + subprocess.run(['cmake', f'-B {LIB_BUILD_PATH}', f'-DPA_TOKEN={PAT}', '-DBUILD_LIBTK205=ON', '-Dlibtk205_BUILD_TESTING=ON']) return { 'task_dep': ['build_schema'], 'params':[{'name':'PAT', @@ -182,7 +182,7 @@ def configure_build(PAT): 'actions': [ (create_folder, [LIB_BUILD_PATH]), (configure_build, ), - f'cmake --build {LIB_BUILD_PATH} --config Release' + 'cmake --build build --config Release' ], 'clean': ['doit -d schema-205 clean cpp'], } From 1a83e826f0b2b8e878a3097e3fe5e7faf6a27258 Mon Sep 17 00:00:00 2001 From: Tanaya Mankad Date: Wed, 24 May 2023 13:36:59 -0600 Subject: [PATCH 32/34] Remove old libtk205 subdirectory. --- .gitmodules | 6 - old_libtk205/CMakeLists.txt | 54 ------- .../cmake/copy_autogenerated_files.cmake | 12 -- .../cmake/copy_base_class_files.cmake | 7 - old_libtk205/cmake/update_lib_repo.cmake | 122 ---------------- old_libtk205/include/loadobject_205.h | 29 ---- old_libtk205/include/typeinfo_205.h | 16 --- old_libtk205/test/CMakeLists.txt | 21 --- old_libtk205/test/fixtures_libtk205.hpp | 136 ------------------ old_libtk205/test/main_libtk205.cpp | 104 -------------- old_libtk205/vendor/CMakeLists.txt | 17 --- old_libtk205/vendor/btwxt | 1 - old_libtk205/vendor/json | 1 - 13 files changed, 526 deletions(-) delete mode 100644 old_libtk205/CMakeLists.txt delete mode 100644 old_libtk205/cmake/copy_autogenerated_files.cmake delete mode 100644 old_libtk205/cmake/copy_base_class_files.cmake delete mode 100644 old_libtk205/cmake/update_lib_repo.cmake delete mode 100644 old_libtk205/include/loadobject_205.h delete mode 100644 old_libtk205/include/typeinfo_205.h delete mode 100644 old_libtk205/test/CMakeLists.txt delete mode 100644 old_libtk205/test/fixtures_libtk205.hpp delete mode 100644 old_libtk205/test/main_libtk205.cpp delete mode 100644 old_libtk205/vendor/CMakeLists.txt delete mode 160000 old_libtk205/vendor/btwxt delete mode 160000 old_libtk205/vendor/json diff --git a/.gitmodules b/.gitmodules index e4bfa05..cba360a 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,9 +1,3 @@ [submodule "schema-205"] path = schema-205 url = https://github.com/open205/schema-205 -[submodule "libtk205/vendor/json"] - path = old_libtk205/vendor/json - url = https://github.com/nlohmann/json.git -[submodule "libtk205/vendor/btwxt"] - path = old_libtk205/vendor/btwxt - url = https://github.com/bigladder/btwxt.git diff --git a/old_libtk205/CMakeLists.txt b/old_libtk205/CMakeLists.txt deleted file mode 100644 index be8e10a..0000000 --- a/old_libtk205/CMakeLists.txt +++ /dev/null @@ -1,54 +0,0 @@ -set(CMAKE_CXX_STANDARD 17) -set(CMAKE_CXX_STANDARD_REQUIRED ON) -project(libtk205) - -include(CTest) -set(JSON_BuildTests OFF CACHE INTERNAL "") - -file(GLOB RS_schemas "${PROJECT_SOURCE_DIR}/../schema-205/schema-source/*.schema.yaml") -file(GLOB base_classes - "${PROJECT_SOURCE_DIR}/../schema-205/schema205/src/*.h" - "${PROJECT_SOURCE_DIR}/../schema-205/schema205/src/*.cpp") - -foreach(schema IN LISTS RS_schemas) - string(REGEX REPLACE "${PROJECT_SOURCE_DIR}/../schema-205/schema-source/(.*).schema.yaml" "\\1" schema_name "${schema}") - string(TOLOWER ${schema_name} schema_name) - list(APPEND rs_headers "${PROJECT_SOURCE_DIR}/../schema-205/build/include/${schema_name}.h") - list(APPEND rs_src "${PROJECT_SOURCE_DIR}/../schema-205/build/cpp/${schema_name}.cpp") - if (schema_name MATCHES "rs.*") - list(APPEND factory_headers "${PROJECT_SOURCE_DIR}/../schema-205/build/include/${schema_name}_factory.h") - list(APPEND factory_src "${PROJECT_SOURCE_DIR}/../schema-205/build/cpp/${schema_name}_factory.cpp") - endif() -endforeach() - -# Runs if OUTPUT is missing, or if OUTPUT exists BUT file DEPENDencies have changed -# If OUTPUT exists and DEPENDS files haven't changed, the command is not run (?) -add_custom_command(OUTPUT ${rs_headers} ${rs_src} ${lib_headers} ${base_classes} - COMMAND poetry run doit cpp - DEPENDS ${RS_schemas} - COMMENT "Generate libtk205 files from YAML schema" - WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/../schema-205") - -set (SOURCES "${rs_headers}" - "${rs_src}" - "${factory_headers}" - "${factory_src}" - "${base_classes}") - -add_library(libtk205 ${SOURCES}) - -target_include_directories(libtk205 PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include) -target_include_directories(libtk205 PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../schema-205/build/include) -target_include_directories(libtk205 PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../schema-205/schema205/src) - -add_subdirectory(vendor) -target_link_libraries(libtk205 PUBLIC btwxt nlohmann_json) - -if (BUILD_TK205_TESTING) - add_compile_definitions(TEST205_INPUT_EXAMPLES_DIR="${TEST205_INPUT_EXAMPLES_DIR}") - add_subdirectory(test) -endif() - -set(CPACK_PROJECT_NAME ${PROJECT_NAME}) -set(CPACK_PROJECT_VERSION ${PROJECT_VERSION}) -include(CPack) diff --git a/old_libtk205/cmake/copy_autogenerated_files.cmake b/old_libtk205/cmake/copy_autogenerated_files.cmake deleted file mode 100644 index d4369e4..0000000 --- a/old_libtk205/cmake/copy_autogenerated_files.cmake +++ /dev/null @@ -1,12 +0,0 @@ -# Copy headers, for classes that must be distributed (not factories), into the project -# include directory - -file(GLOB autogenerated_factories "${PROJECT_SOURCE_DIR}/../schema-205/build/include/*factory.h") -file(GLOB autogenerated_headers "${PROJECT_SOURCE_DIR}/../schema-205/build/include/*.h") -foreach(filename ${autogenerated_factories}) - list(REMOVE_ITEM autogenerated_headers ${filename}) -endforeach(filename) - -foreach(filename ${autogenerated_headers}) - configure_file(${filename} ${PROJECT_SOURCE_DIR}/include COPYONLY) -endforeach(filename) diff --git a/old_libtk205/cmake/copy_base_class_files.cmake b/old_libtk205/cmake/copy_base_class_files.cmake deleted file mode 100644 index 39b6349..0000000 --- a/old_libtk205/cmake/copy_base_class_files.cmake +++ /dev/null @@ -1,7 +0,0 @@ -# Copy all autogenerated source (cpp) files into build directory - -file(GLOB template_generated_files "${PROJECT_SOURCE_DIR}/../schema-205/schema205/src/*.h") - -foreach(filename ${template_generated_files}) - configure_file(${filename} ${PROJECT_SOURCE_DIR}/include COPYONLY) -endforeach(filename) diff --git a/old_libtk205/cmake/update_lib_repo.cmake b/old_libtk205/cmake/update_lib_repo.cmake deleted file mode 100644 index bd46e90..0000000 --- a/old_libtk205/cmake/update_lib_repo.cmake +++ /dev/null @@ -1,122 +0,0 @@ -# repo_name is unique to the project -set(repo_name "libtk205") -set(upload_repo "github.com/open205/${repo_name}") -set(authenticated_repo "https://${PA_TOKEN}:x-oauth-basic@${upload_repo}") # PA_TOKEN is set by GitHub Actions - -message(STATUS ${authenticated_repo}) - -if(NOT EXISTS "${PROJECT_SOURCE_DIR}/ci") - file(MAKE_DIRECTORY "${PROJECT_SOURCE_DIR}/ci") -endif() -set(clone_dir "${PROJECT_SOURCE_DIR}/ci/${repo_name}") - -find_package(Git QUIET) - -if(GIT_FOUND) - if(NOT EXISTS "${clone_dir}") - execute_process(COMMAND ${GIT_EXECUTABLE} clone ${authenticated_repo} - WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/ci - RESULT_VARIABLE GIT_SUBMOD_RESULT) - if(NOT GIT_SUBMOD_RESULT EQUAL "0") - message(FATAL_ERROR "${GIT_EXECUTABLE} clone ${authenticated_repo} failed with ${GIT_SUBMOD_RESULT}.") - endif() - endif() -else() - message(FATAL_ERROR "git not found!") -endif() - -# git branch name query -execute_process(COMMAND ${GIT_EXECUTABLE} rev-parse --abbrev-ref HEAD - WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} - OUTPUT_VARIABLE current_git_branch - OUTPUT_STRIP_TRAILING_WHITESPACE -) -message(STATUS "Current local branch is ${current_git_branch}.") - -execute_process(COMMAND ${GIT_EXECUTABLE} log -1 --pretty=%B - WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} - OUTPUT_VARIABLE last_commit_msg - OUTPUT_STRIP_TRAILING_WHITESPACE -) -message(STATUS "Last commit message on local branch was \"${last_commit_msg}\"") - -execute_process(COMMAND ${GIT_EXECUTABLE} ls-remote --heads --exit-code ${authenticated_repo} ${current_git_branch} - WORKING_DIRECTORY ${clone_dir} - RESULT_VARIABLE exit_code - OUTPUT_VARIABLE output_repo_branches -) -if(exit_code EQUAL "0") - message(STATUS "Branch ${current_git_branch} exists in upload remote.") - execute_process(COMMAND ${GIT_EXECUTABLE} checkout ${current_git_branch} - WORKING_DIRECTORY ${clone_dir} - ) -else() - message(STATUS "Branch ${current_git_branch} must be created in upload remote.") - execute_process(COMMAND ${GIT_EXECUTABLE} checkout -b ${current_git_branch} - WORKING_DIRECTORY ${clone_dir} - ) - execute_process(COMMAND ${GIT_EXECUTABLE} push -u origin ${current_git_branch} - WORKING_DIRECTORY ${clone_dir} - ) -endif() - -set(include_dest_dir "${clone_dir}/include/${repo_name}") -set(src_dest_dir "${clone_dir}/src") - -file(MAKE_DIRECTORY "${include_dest_dir}") -file(MAKE_DIRECTORY "${src_dest_dir}") - -# Copy generated files -file(COPY "${PROJECT_SOURCE_DIR}/../schema-205/build/include/" - DESTINATION "${include_dest_dir}" - FILES_MATCHING PATTERN *.h) -file(COPY "${PROJECT_SOURCE_DIR}/include/" - DESTINATION "${include_dest_dir}" - FILES_MATCHING PATTERN *.h) -file(COPY "${PROJECT_SOURCE_DIR}/../schema-205/schema205/src/" - DESTINATION "${include_dest_dir}" - FILES_MATCHING PATTERN *.h) - -file(COPY "${PROJECT_SOURCE_DIR}/../schema-205/build/cpp/" - DESTINATION "${src_dest_dir}" - FILES_MATCHING PATTERN *.cpp) -file(COPY "${PROJECT_SOURCE_DIR}/src/" - DESTINATION "${src_dest_dir}" - FILES_MATCHING PATTERN *.cpp) -file(COPY "${PROJECT_SOURCE_DIR}/../schema-205/schema205/src/" - DESTINATION "${src_dest_dir}" - FILES_MATCHING PATTERN *.cpp) - -file(COPY "${PROJECT_SOURCE_DIR}/test/" - DESTINATION "${clone_dir}/test" - FILES_MATCHING - PATTERN *.cpp - PATTERN *.hpp) - -file(COPY "${PROJECT_SOURCE_DIR}/../schema-205/examples" - DESTINATION "${clone_dir}") - -# git status (see if files changed) -execute_process(COMMAND ${GIT_EXECUTABLE} status - WORKING_DIRECTORY ${clone_dir} -) - -# git config -execute_process(COMMAND ${GIT_EXECUTABLE} config user.name "Actions CI" - WORKING_DIRECTORY ${clone_dir} -) -execute_process(COMMAND ${GIT_EXECUTABLE} config user.email "ci.bigladdersoftware.com" - WORKING_DIRECTORY ${clone_dir} -) -# git add -execute_process(COMMAND ${GIT_EXECUTABLE} add include src test examples - WORKING_DIRECTORY ${clone_dir} -) -# git commit -execute_process(COMMAND ${GIT_EXECUTABLE} commit -m "\"${last_commit_msg}\"" - WORKING_DIRECTORY ${clone_dir} -) -# git push -execute_process(COMMAND ${GIT_EXECUTABLE} push - WORKING_DIRECTORY ${clone_dir} -) diff --git a/old_libtk205/include/loadobject_205.h b/old_libtk205/include/loadobject_205.h deleted file mode 100644 index 59ee42f..0000000 --- a/old_libtk205/include/loadobject_205.h +++ /dev/null @@ -1,29 +0,0 @@ -#ifndef LOADOBJECT_205_H_ -#define LOADOBJECT_205_H_ - -#include -#include - -namespace tk205 { - - template - void a205_json_get(nlohmann::json j, Courierr::Courierr& logger, const char *subnode, T& a205_object, bool& object_is_set, bool required = false) - { - try - { - a205_object = j.at(subnode).get(); - object_is_set = true; - } - catch (nlohmann::json::out_of_range & ex) - { - object_is_set = false; - if (required) - { - logger.warning(ex.what()); - } - } - } -} - - -#endif \ No newline at end of file diff --git a/old_libtk205/include/typeinfo_205.h b/old_libtk205/include/typeinfo_205.h deleted file mode 100644 index 18cfcc3..0000000 --- a/old_libtk205/include/typeinfo_205.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef TYPEINFO_205_H_ -#define TYPEINFO_205_H_ - -#include - -namespace tk205 { - - struct enum_info - { - std::string_view enumerant_name; - std::string_view display_text; - std::string_view description; - }; -} - -#endif // TYPEINFO_205_H_ \ No newline at end of file diff --git a/old_libtk205/test/CMakeLists.txt b/old_libtk205/test/CMakeLists.txt deleted file mode 100644 index bd2cbed..0000000 --- a/old_libtk205/test/CMakeLists.txt +++ /dev/null @@ -1,21 +0,0 @@ -# Test Executable - -include(GoogleTest) - -set (SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/fixtures_libtk205.hpp - ${CMAKE_CURRENT_SOURCE_DIR}/main_libtk205.cpp - ${PROJECT_SOURCE_DIR}/../schema-205/schema205/src/rs_instance_factory.h - ${PROJECT_SOURCE_DIR}/../schema-205/schema205/src/rs_instance_factory.cpp) - -set_source_files_properties(${SOURCES} PROPERTIES GENERATED TRUE) #TODO: Check if GENERATED property is used - -add_executable(libtk205_tests ${SOURCES}) -target_include_directories(libtk205_tests PRIVATE - ${PROJECT_SOURCE_DIR}/include - ${PROJECT_SOURCE_DIR}/../schema-205/build/include - ${PROJECT_SOURCE_DIR}/../schema-205/schema205/src - ${gtest_SOURCE_DIR}/include) -target_link_libraries(libtk205_tests libtk205 btwxt nlohmann_json gtest gmock) - -gtest_discover_tests(libtk205_tests TEST_PREFIX libtk205:) - \ No newline at end of file diff --git a/old_libtk205/test/fixtures_libtk205.hpp b/old_libtk205/test/fixtures_libtk205.hpp deleted file mode 100644 index 314c2e6..0000000 --- a/old_libtk205/test/fixtures_libtk205.hpp +++ /dev/null @@ -1,136 +0,0 @@ -/* Copyright (c) 2021 Big Ladder Software LLC. All rights reserved. - * See the LICENSE file for additional terms and conditions. */ - -#ifndef FIXTURE_LIBTK205_HPP_ -#define FIXTURE_LIBTK205_HPP_ - -#include -#include "gtest/gtest.h" -// The following headers are necessary to create an RS instance -#include "rs0001.h" -#include "rs0002.h" -#include "rs0003.h" -#include "rs0004.h" -#include "rs0005.h" -#include "rs0006.h" -#include "rs0007.h" -// The following headers are required wherever we register necessary factories; -// it's not required that it be in the same place that RS instances are created. -#include "rs0001_factory.h" -#include "rs0002_factory.h" -#include "rs0003_factory.h" -#include "rs0004_factory.h" -#include "rs0005_factory.h" -#include "rs0006_factory.h" -#include "rs0007_factory.h" - -using namespace tk205; - -class RSFixture : public testing::Test -{ -protected: - RSFixture() {} - std::shared_ptr rs_; -}; - -class RS0001BadFixture : public RSFixture -{ -protected: - RS0001BadFixture() : RSFixture() - { - RSInstanceFactory::register_factory("RS0001", std::make_shared()); - rs_ = RSInstanceFactory::create("RS0001", TEST205_INPUT_EXAMPLES_DIR "/examples/RS0002/Unitary-Constant-Efficiency.RS0002.a205.json", std::make_shared()); - } -}; - -class RS0001UnsupportedFixture : public RSFixture -{ -protected: - RS0001UnsupportedFixture() : RSFixture() - { - RSInstanceFactory::register_factory("RS0001", std::make_shared()); - rs_ = RSInstanceFactory::create("RS0001", TEST205_INPUT_EXAMPLES_DIR "/examples/RS0001/Chiller-Unsupported.RS0001.a205.json", std::make_shared()); - } -}; - -class RS0001Fixture : public RSFixture -{ -protected: - RS0001Fixture() : RSFixture() - { - RSInstanceFactory::register_factory("RS0001", std::make_shared()); - rs_ = RSInstanceFactory::create("RS0001", TEST205_INPUT_EXAMPLES_DIR "/examples/RS0001/Chiller-Constant-Efficiency.RS0001.a205.json", std::make_shared()); - } -}; - -class ASHRAEChillerFixture : public RSFixture -{ -protected: - ASHRAEChillerFixture() : RSFixture() - { - RSInstanceFactory::register_factory("RS0001", std::make_shared()); - rs_ = RSInstanceFactory::create("RS0001", TEST205_INPUT_EXAMPLES_DIR "/examples/RS0001/ASHRAE90-1-2019-bd-Curve-Set-C.RS0001.a205.json", std::make_shared()); - } -}; - -class RS0002Fixture : public RSFixture -{ -protected: - RS0002Fixture() : RSFixture() - { - RSInstanceFactory::register_factory("RS0002", std::make_shared()); - rs_ = RSInstanceFactory::create("RS0002", TEST205_INPUT_EXAMPLES_DIR "/examples/RS0002/Unitary-Constant-Efficiency.RS0002.a205.json", std::make_shared()); - } -}; - -class RS0003Fixture : public RSFixture -{ -protected: - RS0003Fixture() : RSFixture() - { - RSInstanceFactory::register_factory("RS0003", std::make_shared()); - rs_= RSInstanceFactory::create("RS0003", TEST205_INPUT_EXAMPLES_DIR "/examples/RS0003/Fan-Continuous.RS0003.a205.json", std::make_shared()); - } -}; - -class RS0004Fixture : public RSFixture -{ -protected: - RS0004Fixture() : RSFixture() - { - RSInstanceFactory::register_factory("RS0004", std::make_shared()); - rs_= RSInstanceFactory::create("RS0004", TEST205_INPUT_EXAMPLES_DIR "/examples/RS0004/DX-Constant-Efficiency.RS0004.a205.json", std::make_shared()); - } -}; - -class RS0005Fixture : public RSFixture -{ -protected: - RS0005Fixture() : RSFixture() - { - RSInstanceFactory::register_factory("RS0005", std::make_shared()); - rs_= RSInstanceFactory::create("RS0005", TEST205_INPUT_EXAMPLES_DIR "/examples/RS0005/Motor-Constant-Efficiency.RS0005.a205.json", std::make_shared()); - } -}; - -class RS0006Fixture : public RSFixture -{ -protected: - RS0006Fixture() : RSFixture() - { - RSInstanceFactory::register_factory("RS0006", std::make_shared()); - rs_ = RSInstanceFactory::create("RS0006", TEST205_INPUT_EXAMPLES_DIR "/examples/RS0006/Drive-Constant-Efficiency.RS0006.a205.json", std::make_shared()); - } -}; - -class RS0007Fixture : public RSFixture -{ -protected: - RS0007Fixture() : RSFixture() - { - RSInstanceFactory::register_factory("RS0007", std::make_shared()); - rs_ = RSInstanceFactory::create("RS0007", TEST205_INPUT_EXAMPLES_DIR "/examples/RS0007/Belt-Drive-Constant-Efficiency.RS0007.a205.json", std::make_shared()); - } -}; - -#endif // FIXTURE_LIBTK205_HPP_ diff --git a/old_libtk205/test/main_libtk205.cpp b/old_libtk205/test/main_libtk205.cpp deleted file mode 100644 index c507307..0000000 --- a/old_libtk205/test/main_libtk205.cpp +++ /dev/null @@ -1,104 +0,0 @@ -/* Copyright (c) 2021 Big Ladder Software LLC. All rights reserved. - * See the LICENSE file for additional terms and conditions. */ - -#include "gtest/gtest.h" -#include "gmock/gmock.h" - -#include "fixtures_libtk205.hpp" -#include - -TEST_F(RS0001BadFixture, Verify_RS_object) -{ - auto rs = dynamic_cast(rs_.get()); - EXPECT_TRUE(rs == nullptr); -} - -TEST_F(RS0001UnsupportedFixture, Verify_schema_version) -{ - auto rs = dynamic_cast(rs_.get()); - EXPECT_TRUE(rs == nullptr); -} - -TEST_F(RS0001Fixture, Check_is_set) -{ - auto rs = dynamic_cast(rs_.get()); - EXPECT_TRUE(rs != nullptr); - EXPECT_FALSE(rs->metadata.data_source_is_set); - EXPECT_TRUE(rs->metadata.description_is_set); -} - -TEST_F(RS0001Fixture, Calculate_performance_cooling) -{ - auto rs = dynamic_cast(rs_.get()); - EXPECT_TRUE(rs != nullptr); - std::vector target {0.0755, 280.0, 0.0957, 295.0, 0.5}; //NOLINT : Magic numbers necessary! - auto result = rs->performance.performance_map_cooling.calculate_performance(target); - EXPECT_EQ(result.size(), 9u); -} - -TEST_F(RS0001Fixture, Calculate_performance_cooling_2) -{ - auto rs = dynamic_cast(rs_.get()); - EXPECT_TRUE(rs != nullptr); - std::vector target {0.0755, 280.0, 0.0957, 295.0, 0.5}; //NOLINT : Magic numbers necessary! - auto result = rs->performance.performance_map_cooling.calculate_performance(target, rs->performance.performance_map_cooling.lookup_variables.condenser_liquid_leaving_temperature_index); - // 59593.2,351600,411193,281.11,296.03,74400,23600,0,0 - EXPECT_NEAR(result, 296.03, 0.001); -} - -TEST_F(RS0001Fixture, Calculate_performance_cooling_3) -{ - auto rs = dynamic_cast(rs_.get()); - EXPECT_TRUE(rs != nullptr); - auto result = rs->performance.performance_map_cooling.calculate_performance(0.0755, 280.0, 0.0957, 295.0, 0.5, Btwxt::Method::linear).condenser_liquid_leaving_temperature; - EXPECT_NEAR(result, 296.03, 0.001); -} - -TEST_F(ASHRAEChillerFixture, Calculate_performance_cubic) -{ - auto rs = dynamic_cast(rs_.get()); - EXPECT_TRUE(rs != nullptr); - std::vector target {0.00565, 280.0, 0.00845, 297.0, 1.5}; //NOLINT : Magic numbers necessary! - auto result1 = rs->performance.performance_map_cooling.calculate_performance(target, Btwxt::Method::linear); - auto result2 = rs->performance.performance_map_cooling.calculate_performance(target, Btwxt::Method::cubic); - EXPECT_NE(result1, result2); -} - -TEST_F(RS0005Fixture, Calculate_embedded_RS_performance) -{ - auto rs = dynamic_cast(rs_.get()); - EXPECT_TRUE(rs != nullptr); - std::vector target {5550.0, 10.0}; //NOLINT - auto result = rs->performance.drive_representation.performance.performance_map.calculate_performance(target); - EXPECT_THAT(result, testing::ElementsAre(testing::DoubleEq(0.985))); -} - -TEST_F(RS0003Fixture, Verify_grid_variable_index) -{ - auto rs = dynamic_cast(rs_.get()); - EXPECT_TRUE(rs != nullptr); - auto pm = dynamic_cast(rs->performance.performance_map.get()); - EXPECT_TRUE(pm != nullptr); - auto result = pm->grid_variables.static_pressure_difference_index; - EXPECT_EQ(result, 1u); -} - -TEST_F(RS0006Fixture, Verify_enum_description) -{ - auto result = rs0006_ns::CoolingMethod_info.at(rs0006_ns::CoolingMethod::ACTIVE_AIR_COOLED).description; - EXPECT_THAT(result, "Drive is cooled using forced air convection within the surrounding environment"); -} - -TEST_F(RS0001Fixture, Verify_element_metadata) -{ - auto result = rs0001_ns::RatingAHRI550590PartLoadPoint::evaporator_liquid_volumetric_flow_rate_name; - EXPECT_THAT(result, "evaporator_liquid_volumetric_flow_rate"); - result = rs0001_ns::RatingAHRI550590PartLoadPoint::evaporator_liquid_volumetric_flow_rate_units; - EXPECT_THAT(result, "gpm"); -} - -int main(int argc, char **argv) -{ - ::testing::InitGoogleTest(&argc, argv); - return RUN_ALL_TESTS(); -} diff --git a/old_libtk205/vendor/CMakeLists.txt b/old_libtk205/vendor/CMakeLists.txt deleted file mode 100644 index 71736dd..0000000 --- a/old_libtk205/vendor/CMakeLists.txt +++ /dev/null @@ -1,17 +0,0 @@ -if (NOT TARGET btwxt) - add_subdirectory(btwxt) -endif() - -if (NOT TARGET nlohmann_json) #TODO: check if used - add_subdirectory(json) -endif() - -if (BUILD_TK205_TESTING AND NOT TARGET gtest) - - # Prevent GoogleTest from overriding our compiler/linker options - # when building with Visual Studio - set(gtest_force_shared_crt ON CACHE BOOL "" FORCE) - set(BUILD_GTEST ON CACHE BOOL "" FORCE) - add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/btwxt/vendor/googletest) - -endif() \ No newline at end of file diff --git a/old_libtk205/vendor/btwxt b/old_libtk205/vendor/btwxt deleted file mode 160000 index eaeab04..0000000 --- a/old_libtk205/vendor/btwxt +++ /dev/null @@ -1 +0,0 @@ -Subproject commit eaeab04afb8201478a2df08d2ed292462ab46717 diff --git a/old_libtk205/vendor/json b/old_libtk205/vendor/json deleted file mode 160000 index fd7a9f6..0000000 --- a/old_libtk205/vendor/json +++ /dev/null @@ -1 +0,0 @@ -Subproject commit fd7a9f600712b2724463e9f7f703878ade676d6e From 7eadb01887d2412e36d773ab52a0338e047df887 Mon Sep 17 00:00:00 2001 From: Tanaya Mankad Date: Wed, 21 Jun 2023 10:04:43 -0600 Subject: [PATCH 33/34] Set non-libtk205 tasks as default in doit. --- .github/workflows/build-and-test.yml | 2 -- dodo.py | 2 ++ 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index 7f3d7d6..c49e1ce 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -25,9 +25,7 @@ jobs: python-version: ${{ matrix.python-version }} - name: Build and test run: | - poetry run doit ignore libtk205 poetry run doit - poetry run doit forget libtk205 poetry run doit libtk205 --PAT "${{secrets.CI_PA_TOKEN}}" poetry run doit libtk205_tests - name: Export libtk205 source diff --git a/dodo.py b/dodo.py index c644d15..513a440 100644 --- a/dodo.py +++ b/dodo.py @@ -14,6 +14,8 @@ TK205_SOURCE_PATH = 'tk205' SCHEMA205_SOURCE_PATH = os.path.join("schema-205","schema205") +DOIT_CONFIG = {'default_tasks': ['build_schema', 'cbor', 'yaml', 'xlsx', 'json', 'templates', 'test', 'web']} + def task_build_schema(): '''Build the schema''' return { From cf145bec5e51a1eba42516674517d4b074bab2b9 Mon Sep 17 00:00:00 2001 From: Tanaya Mankad Date: Fri, 23 Jun 2023 12:23:10 -0600 Subject: [PATCH 34/34] Move repo-specific variables out of clone- and update- cmake scripts. --- .github/workflows/build-and-test.yml | 2 +- CMakeLists.txt | 4 ++-- cmake/get_lib_repo_local.cmake | 2 -- cmake/update_lib_repo_ci.cmake | 2 -- cmake/update_lib_repo_local.cmake | 1 - 5 files changed, 3 insertions(+), 8 deletions(-) diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index c49e1ce..2afefab 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -30,5 +30,5 @@ jobs: poetry run doit libtk205_tests - name: Export libtk205 source if: matrix.os == 'ubuntu-latest' && matrix.python-version == '3.10' - run: cmake -DPA_TOKEN="${{secrets.CI_PA_TOKEN}}" -DPROJECT_SOURCE_DIR="${{github.workspace}}" -P "${{github.workspace}}/cmake/update_lib_repo_ci.cmake" + run: cmake -DPA_TOKEN="${{secrets.CI_PA_TOKEN}}" -DPROJECT_SOURCE_DIR="${{github.workspace}}" -Drepo_name=libtk205 -Dupload_repo=https://github.com/open205/libtk205 -P "${{github.workspace}}/cmake/update_lib_repo_ci.cmake" diff --git a/CMakeLists.txt b/CMakeLists.txt index bc26054..c7d3d13 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -34,7 +34,7 @@ endforeach() if(BUILD_LIBTK205) execute_process( - COMMAND ${CMAKE_COMMAND} -DPA_TOKEN=${PA_TOKEN} -DPROJECT_SOURCE_DIR=${PROJECT_SOURCE_DIR} -P "cmake/get_lib_repo_local.cmake" + COMMAND ${CMAKE_COMMAND} -DPA_TOKEN=${PA_TOKEN} -DPROJECT_SOURCE_DIR=${PROJECT_SOURCE_DIR} -Drepo_name=libtk205 -Dupload_repo=https://github.com/open205/libtk205 -P "cmake/get_lib_repo_local.cmake" ) add_subdirectory(libtk205) @@ -46,7 +46,7 @@ if(BUILD_LIBTK205) # If no target depends on its outputs, the command is not run (see libtk205_generator custom target) add_custom_command(OUTPUT ${rs_headers} ${rs_src} ${factory_headers} ${factory_src} COMMAND poetry run doit cpp - COMMAND ${CMAKE_COMMAND} -DPROJECT_SOURCE_DIR=${PROJECT_SOURCE_DIR} -P "../cmake/update_lib_repo_local.cmake" + COMMAND ${CMAKE_COMMAND} -DPROJECT_SOURCE_DIR=${PROJECT_SOURCE_DIR} -Drepo_name=libtk205 -P "../cmake/update_lib_repo_local.cmake" DEPENDS ${RS_schemas} COMMENT "Generate libtk205 files from YAML schema" WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}/schema-205") diff --git a/cmake/get_lib_repo_local.cmake b/cmake/get_lib_repo_local.cmake index 27ae9cd..b44036c 100644 --- a/cmake/get_lib_repo_local.cmake +++ b/cmake/get_lib_repo_local.cmake @@ -1,6 +1,4 @@ # repo_name is unique to the project -set(repo_name "libtk205") -set(upload_repo "https://github.com/open205/${repo_name}") if(${PA_TOKEN}) set(authenticated_repo "https://${PA_TOKEN}:x-oauth-basic@${upload_repo}") # PA_TOKEN is set by GitHub Actions else() diff --git a/cmake/update_lib_repo_ci.cmake b/cmake/update_lib_repo_ci.cmake index 1689758..e3e64c6 100644 --- a/cmake/update_lib_repo_ci.cmake +++ b/cmake/update_lib_repo_ci.cmake @@ -1,6 +1,4 @@ # repo_name is unique to the project -set(repo_name "libtk205") -set(upload_repo "github.com/open205/${repo_name}") set(authenticated_repo "https://${PA_TOKEN}:x-oauth-basic@${upload_repo}") # PA_TOKEN is set by GitHub Actions set(clone_dir "${PROJECT_SOURCE_DIR}/${repo_name}") diff --git a/cmake/update_lib_repo_local.cmake b/cmake/update_lib_repo_local.cmake index ec30b49..2309584 100644 --- a/cmake/update_lib_repo_local.cmake +++ b/cmake/update_lib_repo_local.cmake @@ -1,4 +1,3 @@ -set(repo_name "libtk205") set(clone_dir "${PROJECT_SOURCE_DIR}/${repo_name}") set(include_dest_dir "${clone_dir}/include/${repo_name}")