diff --git a/buildcc/lib/target/CMakeLists.txt b/buildcc/lib/target/CMakeLists.txt index 8b6cf6a8..a1cf05c2 100644 --- a/buildcc/lib/target/CMakeLists.txt +++ b/buildcc/lib/target/CMakeLists.txt @@ -1,4 +1,6 @@ # Target mocks and tests +include(cmake/common_target_src.cmake) + if (${TESTING}) set(TARGET_DIR "${CMAKE_CURRENT_SOURCE_DIR}") include(cmake/mock_target.cmake) diff --git a/buildcc/lib/target/cmake/common_target_src.cmake b/buildcc/lib/target/cmake/common_target_src.cmake new file mode 100644 index 00000000..d1bf2827 --- /dev/null +++ b/buildcc/lib/target/cmake/common_target_src.cmake @@ -0,0 +1,70 @@ +set(COMMON_TARGET_SRCS + # Interfaces + include/target/interface/loader_interface.h + include/target/interface/builder_interface.h + + # Common + src/common/target_config.cpp + src/common/target_state.cpp + include/target/common/target_file_ext.h + include/target/common/target_config.h + include/target/common/target_state.h + include/target/common/target_env.h + include/target/common/target_type.h + + src/common/util.cpp + include/target/common/util.h + + include/target/common/path.h + + # API + src/api/source_api.cpp + src/api/include_api.cpp + src/api/lib_api.cpp + src/api/pch_api.cpp + src/api/flag_api.cpp + src/api/deps_api.cpp + include/target/api/source_api.h + include/target/api/include_api.h + include/target/api/lib_api.h + include/target/api/pch_api.h + include/target/api/flag_api.h + include/target/api/deps_api.h + + src/api/copy_api.cpp + include/target/api/copy_api.h + + src/api/target_info_getter.cpp + src/api/target_getter.cpp + include/target/api/target_info_getter.h + include/target/api/target_getter.h + + # Base Generator + src/generator/generator_loader.cpp + src/generator/generator_storer.cpp + include/target/base/generator_loader.h + + # Generator + src/generator/generator.cpp + include/target/generator.h + + # Target friend + src/target/friend/compile_pch.cpp + src/target/friend/compile_object.cpp + src/target/friend/link_target.cpp + include/target/friend/compile_pch.h + include/target/friend/compile_object.h + include/target/friend/link_target.h + + # Base Target + src/target/target_loader.cpp + src/target/target_storer.cpp + include/target/base/target_loader.h + include/target/base/target_storer.h + + # Target + src/target/target.cpp + src/target/build.cpp + include/target/target_info.h + include/target/target.h +) diff --git a/buildcc/lib/target/cmake/mock_target.cmake b/buildcc/lib/target/cmake/mock_target.cmake index 01424a5b..17f7d2ca 100644 --- a/buildcc/lib/target/cmake/mock_target.cmake +++ b/buildcc/lib/target/cmake/mock_target.cmake @@ -1,48 +1,13 @@ add_library(mock_target STATIC - # Utils - src/util/util.cpp - - # Common - src/common/target_config.cpp - src/common/target_state.cpp - - # API - src/api/source_api.cpp - src/api/include_api.cpp - src/api/lib_api.cpp - src/api/pch_api.cpp - src/api/flag_api.cpp - src/api/deps_api.cpp - - src/api/copy_api.cpp - - src/api/target_info_getter.cpp - src/api/target_getter.cpp - - # Generator - src/generator/generator_loader.cpp - src/generator/generator_storer.cpp - src/generator/generator.cpp + ${COMMON_TARGET_SRCS} # Generator mocks mock/generator/task.cpp mock/generator/recheck_states.cpp - # Target friend - src/target/friend/compile_pch.cpp - src/target/friend/compile_object.cpp - src/target/friend/link_target.cpp - - # Target - src/target/target.cpp - src/target/target_loader.cpp - src/target/target_storer.cpp - - src/target/build.cpp - # Target mocks - mock/target/recheck_states.cpp mock/target/tasks.cpp + mock/target/recheck_states.cpp ) target_include_directories(mock_target PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include diff --git a/buildcc/lib/target/cmake/target.cmake b/buildcc/lib/target/cmake/target.cmake index d71d7fe3..5c45230c 100644 --- a/buildcc/lib/target/cmake/target.cmake +++ b/buildcc/lib/target/cmake/target.cmake @@ -1,72 +1,10 @@ set(TARGET_SRCS - # Interfaces - include/target/loader_interface.h - include/target/builder_interface.h + ${COMMON_TARGET_SRCS} - # Utils - src/util/util.cpp - include/target/path.h - include/target/util.h - - # Common - src/common/target_config.cpp - src/common/target_state.cpp - include/target/common/target_file_ext.h - include/target/common/target_config.h - include/target/common/target_state.h - include/target/common/target_env.h - include/target/common/target_type.h - - # API - src/api/source_api.cpp - src/api/include_api.cpp - src/api/lib_api.cpp - src/api/pch_api.cpp - src/api/flag_api.cpp - src/api/deps_api.cpp - include/target/api/source_api.h - include/target/api/include_api.h - include/target/api/lib_api.h - include/target/api/pch_api.h - include/target/api/flag_api.h - include/target/api/deps_api.h - - src/api/copy_api.cpp - include/target/api/copy_api.h - - src/api/target_info_getter.cpp - src/api/target_getter.cpp - include/target/api/target_info_getter.h - include/target/api/target_getter.h - - # Generator - src/generator/generator_loader.cpp - src/generator/generator_storer.cpp - src/generator/generator.cpp src/generator/task.cpp src/generator/recheck_states.cpp - include/target/generator_loader.h - include/target/generator.h - - # Target friend - src/target/friend/compile_pch.cpp - src/target/friend/compile_object.cpp - src/target/friend/link_target.cpp - include/target/friend/compile_pch.h - include/target/friend/compile_object.h - include/target/friend/link_target.h - - # Target - src/target/target.cpp - src/target/target_loader.cpp - src/target/target_storer.cpp - include/target/target_loader.h - include/target/target_storer.h - include/target/target.h src/target/recheck_states.cpp - - src/target/build.cpp src/target/tasks.cpp ) diff --git a/buildcc/lib/target/include/target/api/target_info_getter.h b/buildcc/lib/target/include/target/api/target_info_getter.h index c3db01d4..2d2894b1 100644 --- a/buildcc/lib/target/include/target/api/target_info_getter.h +++ b/buildcc/lib/target/include/target/api/target_info_getter.h @@ -17,7 +17,7 @@ #ifndef TARGET_API_TARGET_INFO_GETTER_H_ #define TARGET_API_TARGET_INFO_GETTER_H_ -#include "target/path.h" +#include "target/common/path.h" #include "target/common/target_config.h" #include "target/common/target_state.h" diff --git a/buildcc/lib/target/include/target/generator_loader.h b/buildcc/lib/target/include/target/base/generator_loader.h similarity index 91% rename from buildcc/lib/target/include/target/generator_loader.h rename to buildcc/lib/target/include/target/base/generator_loader.h index 1797471c..bce26f2b 100644 --- a/buildcc/lib/target/include/target/generator_loader.h +++ b/buildcc/lib/target/include/target/base/generator_loader.h @@ -14,10 +14,10 @@ * limitations under the License. */ -#ifndef TARGET_GENERATOR_LOADER_H_ -#define TARGET_GENERATOR_LOADER_H_ +#ifndef TARGET_BASE_GENERATOR_LOADER_H_ +#define TARGET_BASE_GENERATOR_LOADER_H_ -#include "target/loader_interface.h" +#include "target/interface/loader_interface.h" #include #include @@ -25,7 +25,7 @@ #include "fmt/format.h" -#include "target/path.h" +#include "target/common/path.h" namespace buildcc::internal { diff --git a/buildcc/lib/target/include/target/target_loader.h b/buildcc/lib/target/include/target/base/target_loader.h similarity index 96% rename from buildcc/lib/target/include/target/target_loader.h rename to buildcc/lib/target/include/target/base/target_loader.h index 0c3fd67f..8b9a8159 100644 --- a/buildcc/lib/target/include/target/target_loader.h +++ b/buildcc/lib/target/include/target/base/target_loader.h @@ -14,17 +14,17 @@ * limitations under the License. */ -#ifndef TARGET_TARGET_LOADER_H_ -#define TARGET_TARGET_LOADER_H_ +#ifndef TARGET_BASE_TARGET_LOADER_H_ +#define TARGET_BASE_TARGET_LOADER_H_ -#include "target/loader_interface.h" +#include "target/interface/loader_interface.h" #include #include #include "fmt/format.h" -#include "target/path.h" +#include "target/common/path.h" namespace buildcc::internal { diff --git a/buildcc/lib/target/include/target/target_storer.h b/buildcc/lib/target/include/target/base/target_storer.h similarity index 94% rename from buildcc/lib/target/include/target/target_storer.h rename to buildcc/lib/target/include/target/base/target_storer.h index 50953c11..98a685e4 100644 --- a/buildcc/lib/target/include/target/target_storer.h +++ b/buildcc/lib/target/include/target/base/target_storer.h @@ -14,12 +14,12 @@ * limitations under the License. */ -#ifndef TARGET_TARGET_STORER_H_ -#define TARGET_TARGET_STORER_H_ +#ifndef TARGET_BASE_TARGET_STORER_H_ +#define TARGET_BASE_TARGET_STORER_H_ #include -#include "target/path.h" +#include "target/common/path.h" namespace buildcc::internal { diff --git a/buildcc/lib/target/include/target/path.h b/buildcc/lib/target/include/target/common/path.h similarity index 98% rename from buildcc/lib/target/include/target/path.h rename to buildcc/lib/target/include/target/common/path.h index ff8c3530..cbc86d09 100644 --- a/buildcc/lib/target/include/target/path.h +++ b/buildcc/lib/target/include/target/common/path.h @@ -14,8 +14,8 @@ * limitations under the License. */ -#ifndef TARGET_PATH_H_ -#define TARGET_PATH_H_ +#ifndef TARGET_COMMON_PATH_H_ +#define TARGET_COMMON_PATH_H_ #include #include diff --git a/buildcc/lib/target/include/target/util.h b/buildcc/lib/target/include/target/common/util.h similarity index 92% rename from buildcc/lib/target/include/target/util.h rename to buildcc/lib/target/include/target/common/util.h index 31deebcc..fe414ed8 100644 --- a/buildcc/lib/target/include/target/util.h +++ b/buildcc/lib/target/include/target/common/util.h @@ -14,13 +14,13 @@ * limitations under the License. */ -#ifndef TARGET_UTIL_H_ -#define TARGET_UTIL_H_ +#ifndef TARGET_COMMON_UTIL_H_ +#define TARGET_COMMON_UTIL_H_ #include #include -#include "target/path.h" +#include "target/common/path.h" namespace buildcc::internal { diff --git a/buildcc/lib/target/include/target/friend/compile_object.h b/buildcc/lib/target/include/target/friend/compile_object.h index cdfd5201..1a72d6ae 100644 --- a/buildcc/lib/target/include/target/friend/compile_object.h +++ b/buildcc/lib/target/include/target/friend/compile_object.h @@ -19,7 +19,7 @@ #include -#include "target/path.h" +#include "target/common/path.h" #include "taskflow/core/task.hpp" #include "taskflow/taskflow.hpp" diff --git a/buildcc/lib/target/include/target/generator.h b/buildcc/lib/target/include/target/generator.h index 479fe51e..5f01694e 100644 --- a/buildcc/lib/target/include/target/generator.h +++ b/buildcc/lib/target/include/target/generator.h @@ -28,10 +28,10 @@ #include "command/command.h" -#include "target/builder_interface.h" +#include "target/interface/builder_interface.h" -#include "target/generator_loader.h" -#include "target/path.h" +#include "target/base/generator_loader.h" +#include "target/common/path.h" namespace buildcc::base { diff --git a/buildcc/lib/target/include/target/builder_interface.h b/buildcc/lib/target/include/target/interface/builder_interface.h similarity index 93% rename from buildcc/lib/target/include/target/builder_interface.h rename to buildcc/lib/target/include/target/interface/builder_interface.h index cfdace58..f91da00f 100644 --- a/buildcc/lib/target/include/target/builder_interface.h +++ b/buildcc/lib/target/include/target/interface/builder_interface.h @@ -14,21 +14,21 @@ * limitations under the License. */ -#ifndef TARGET_BUILDER_INTERFACE_H_ -#define TARGET_BUILDER_INTERFACE_H_ +#ifndef TARGET_INTERFACE_BUILDER_INTERFACE_H_ +#define TARGET_INTERFACE_BUILDER_INTERFACE_H_ #include #include #include -#include "target/path.h" -#include "target/util.h" +#include "target/common/path.h" +#include "target/common/util.h" namespace buildcc::base { // TODO, 1. Consider updating Recheck* APIs - do not modify internal `dirty_` // flag -// TODO, 2. Consider removing dependency on target/util.h +// TODO, 2. Consider removing dependency on target/common/util.h // TODO, 3. Consider making Recheck* APIs free namespaced functions instead of // only within the scope of BuilderInterfaces (See TODO 1. and 2. first) class BuilderInterface { diff --git a/buildcc/lib/target/include/target/loader_interface.h b/buildcc/lib/target/include/target/interface/loader_interface.h similarity index 91% rename from buildcc/lib/target/include/target/loader_interface.h rename to buildcc/lib/target/include/target/interface/loader_interface.h index 5304987e..4196b221 100644 --- a/buildcc/lib/target/include/target/loader_interface.h +++ b/buildcc/lib/target/include/target/interface/loader_interface.h @@ -14,8 +14,8 @@ * limitations under the License. */ -#ifndef TARGET_LOADER_INTERFACE_H_ -#define TARGET_LOADER_INTERFACE_H_ +#ifndef TARGET_INTERFACE_LOADER_INTERFACE_H_ +#define TARGET_INTERFACE_LOADER_INTERFACE_H_ #include diff --git a/buildcc/lib/target/include/target/private/schema_util.h b/buildcc/lib/target/include/target/private/schema_util.h index ef5cc14a..cf6f96d9 100644 --- a/buildcc/lib/target/include/target/private/schema_util.h +++ b/buildcc/lib/target/include/target/private/schema_util.h @@ -21,7 +21,7 @@ #include -#include "target/path.h" +#include "target/common/path.h" namespace fbs = schema::internal; diff --git a/buildcc/lib/target/include/target/target.h b/buildcc/lib/target/include/target/target.h index 1dcd80d0..730c14d2 100644 --- a/buildcc/lib/target/include/target/target.h +++ b/buildcc/lib/target/include/target/target.h @@ -28,7 +28,7 @@ #include // Interface -#include "target/builder_interface.h" +#include "target/interface/builder_interface.h" // API #include "target/api/target_getter.h" @@ -43,9 +43,9 @@ #include "target/friend/link_target.h" // Internal -#include "target/path.h" -#include "target/target_loader.h" -#include "target/target_storer.h" +#include "target/base/target_loader.h" +#include "target/base/target_storer.h" +#include "target/common/path.h" // Components #include "command/command.h" diff --git a/buildcc/lib/target/include/target/target_info.h b/buildcc/lib/target/include/target/target_info.h index bdf889bd..7c5900a8 100644 --- a/buildcc/lib/target/include/target/target_info.h +++ b/buildcc/lib/target/include/target/target_info.h @@ -19,10 +19,10 @@ #include +#include "target/base/target_storer.h" #include "target/common/target_config.h" #include "target/common/target_env.h" #include "target/common/target_state.h" -#include "target/target_storer.h" #include "target/api/copy_api.h" #include "target/api/deps_api.h" diff --git a/buildcc/lib/target/src/common/target_config.cpp b/buildcc/lib/target/src/common/target_config.cpp index 8066c3e3..aaddfbf7 100644 --- a/buildcc/lib/target/src/common/target_config.cpp +++ b/buildcc/lib/target/src/common/target_config.cpp @@ -18,7 +18,7 @@ #include "env/assert_fatal.h" -#include "target/path.h" +#include "target/common/path.h" #include "fmt/format.h" diff --git a/buildcc/lib/target/src/util/util.cpp b/buildcc/lib/target/src/common/util.cpp similarity index 97% rename from buildcc/lib/target/src/util/util.cpp rename to buildcc/lib/target/src/common/util.cpp index 31c7c8ee..68e5b312 100644 --- a/buildcc/lib/target/src/util/util.cpp +++ b/buildcc/lib/target/src/common/util.cpp @@ -14,7 +14,7 @@ * limitations under the License. */ -#include "target/util.h" +#include "target/common/util.h" #include "env/assert_fatal.h" #include "env/env.h" diff --git a/buildcc/lib/target/src/generator/generator_loader.cpp b/buildcc/lib/target/src/generator/generator_loader.cpp index 2ee05992..16e7bb17 100644 --- a/buildcc/lib/target/src/generator/generator_loader.cpp +++ b/buildcc/lib/target/src/generator/generator_loader.cpp @@ -14,7 +14,7 @@ * limitations under the License. */ -#include "target/generator_loader.h" +#include "target/base/generator_loader.h" #include "env/logging.h" #include "env/util.h" diff --git a/buildcc/lib/target/src/target/README.md b/buildcc/lib/target/src/target/README.md index 717c6c65..6306cafb 100644 --- a/buildcc/lib/target/src/target/README.md +++ b/buildcc/lib/target/src/target/README.md @@ -5,9 +5,9 @@ - Common target specific utility functions - Assertion functions - Validity checks -- [x] `target_loader.cpp` +- [x] `base/target_loader.cpp` - Load from flatbuffer schema file -- [x] `target_storer.cpp` +- [x] `base/target_storer.cpp` - Store to flatbuffer schema file ## Target API diff --git a/buildcc/lib/target/src/target/build.cpp b/buildcc/lib/target/src/target/build.cpp index 244d4513..0d3a5bb1 100644 --- a/buildcc/lib/target/src/target/build.cpp +++ b/buildcc/lib/target/src/target/build.cpp @@ -16,7 +16,7 @@ #include "target/target.h" -#include "target/util.h" +#include "target/common/util.h" #include "env/assert_fatal.h" diff --git a/buildcc/lib/target/src/target/friend/compile_pch.cpp b/buildcc/lib/target/src/target/friend/compile_pch.cpp index 7db23c4f..3774fd2b 100644 --- a/buildcc/lib/target/src/target/friend/compile_pch.cpp +++ b/buildcc/lib/target/src/target/friend/compile_pch.cpp @@ -16,7 +16,7 @@ #include "target/friend/compile_pch.h" -#include "target/path.h" +#include "target/common/path.h" #include "target/target.h" #include "env/util.h" diff --git a/buildcc/lib/target/src/target/target.cpp b/buildcc/lib/target/src/target/target.cpp index 7e629e4b..73a7d5a1 100644 --- a/buildcc/lib/target/src/target/target.cpp +++ b/buildcc/lib/target/src/target/target.cpp @@ -17,7 +17,7 @@ #include "target/target.h" // Internal -#include "target/util.h" +#include "target/common/util.h" // Env #include "env/assert_fatal.h" diff --git a/buildcc/lib/target/src/target/target_loader.cpp b/buildcc/lib/target/src/target/target_loader.cpp index b8f4d0d7..da894878 100644 --- a/buildcc/lib/target/src/target/target_loader.cpp +++ b/buildcc/lib/target/src/target/target_loader.cpp @@ -14,7 +14,7 @@ * limitations under the License. */ -#include "target/target_loader.h" +#include "target/base/target_loader.h" #include "env/logging.h" #include "env/util.h" diff --git a/buildcc/lib/target/src/target/tasks.cpp b/buildcc/lib/target/src/target/tasks.cpp index 74a78181..cc4afa1f 100644 --- a/buildcc/lib/target/src/target/tasks.cpp +++ b/buildcc/lib/target/src/target/tasks.cpp @@ -21,7 +21,7 @@ #include "env/assert_fatal.h" #include "env/logging.h" -#include "target/util.h" +#include "target/common/util.h" #include "fmt/format.h" diff --git a/buildcc/lib/target/test/path/test_path.cpp b/buildcc/lib/target/test/path/test_path.cpp index c12eb7d2..dff2ec52 100644 --- a/buildcc/lib/target/test/path/test_path.cpp +++ b/buildcc/lib/target/test/path/test_path.cpp @@ -1,5 +1,5 @@ // Internal -#include "target/path.h" +#include "target/common/path.h" #include "env/assert_fatal.h" diff --git a/buildcc/lib/target/test/target/test_builder_interface.cpp b/buildcc/lib/target/test/target/test_builder_interface.cpp index fbe236e9..f2c22b04 100644 --- a/buildcc/lib/target/test/target/test_builder_interface.cpp +++ b/buildcc/lib/target/test/target/test_builder_interface.cpp @@ -1,6 +1,6 @@ -#include "target/builder_interface.h" +#include "target/interface/builder_interface.h" -#include "target/path.h" +#include "target/common/path.h" // NOTE, Make sure all these includes are AFTER the system and header includes #include "CppUTest/CommandLineTestRunner.h" diff --git a/buildcc/lib/target/test/target/test_target_external_lib.cpp b/buildcc/lib/target/test/target/test_target_external_lib.cpp index f439c3a4..ac650e9f 100644 --- a/buildcc/lib/target/test/target/test_target_external_lib.cpp +++ b/buildcc/lib/target/test/target/test_target_external_lib.cpp @@ -7,7 +7,7 @@ #include "target/target.h" -#include "target/target_loader.h" +#include "target/base/target_loader.h" #include #include diff --git a/buildcc/lib/target/test/target/test_target_flags.cpp b/buildcc/lib/target/test/target/test_target_flags.cpp index a4bcedf4..dbf92f25 100644 --- a/buildcc/lib/target/test/target/test_target_flags.cpp +++ b/buildcc/lib/target/test/target/test_target_flags.cpp @@ -8,7 +8,7 @@ #include "env/env.h" // -#include "target/target_loader.h" +#include "target/base/target_loader.h" // Third Party diff --git a/buildcc/lib/target/test/target/test_target_lib_dep.cpp b/buildcc/lib/target/test/target/test_target_lib_dep.cpp index e2d15fa8..f8574456 100644 --- a/buildcc/lib/target/test/target/test_target_lib_dep.cpp +++ b/buildcc/lib/target/test/target/test_target_lib_dep.cpp @@ -9,7 +9,7 @@ #include "target/target.h" // -#include "target/target_loader.h" +#include "target/base/target_loader.h" #include #include diff --git a/buildcc/plugins/src/buildcc_find.cpp b/buildcc/plugins/src/buildcc_find.cpp index af1afd79..53593686 100644 --- a/buildcc/plugins/src/buildcc_find.cpp +++ b/buildcc/plugins/src/buildcc_find.cpp @@ -22,7 +22,7 @@ #include "env/logging.h" -#include "target/path.h" +#include "target/common/path.h" namespace { constexpr const char *const kEnvVarNotFound =