Skip to content
Merged
Show file tree
Hide file tree
Changes from 23 commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
719e65b
Add depdency install through taskfile
sitaowang1998 Apr 15, 2025
a1a829c
Remove catch2 submodule
sitaowang1998 Apr 15, 2025
ed93185
Update cmake to use dependencies installed through tasks
sitaowang1998 Apr 15, 2025
c03700d
Add dep_install in lib_install to satisfy GH workflow
sitaowang1998 Apr 15, 2025
c7de69c
Add abseil in deps tasks
sitaowang1998 Apr 15, 2025
ad3a40a
Remove abseil from submodule and submodules directory
sitaowang1998 Apr 15, 2025
1d7d607
Rename abseil lib name
sitaowang1998 Apr 15, 2025
cff7ade
Update cmake for abseil installed by tasks
sitaowang1998 Apr 15, 2025
b94aff5
Add PIC in dependency
sitaowang1998 Apr 15, 2025
0c592b5
Update setup in README
sitaowang1998 Apr 17, 2025
e440753
Add task to download ystdlib source
sitaowang1998 Apr 15, 2025
d22fab8
Add ystdlib-cpp in cmake
sitaowang1998 Apr 15, 2025
464dee8
Update clang format with ystdlib library
sitaowang1998 Apr 16, 2025
32f4cdf
Remove unused git submodule file
sitaowang1998 Apr 21, 2025
57a813c
Remove sumodule checkout in GH workflows
sitaowang1998 Apr 21, 2025
5d03504
Revert "Remove sumodule checkout in GH workflows"
sitaowang1998 Apr 21, 2025
54f45d3
Revert "Remove unused git submodule file"
sitaowang1998 Apr 21, 2025
da30d3d
Fix clang tidy task for example code
sitaowang1998 Apr 21, 2025
c28ed52
Update yscope-dev-utils version for install deps and generate settings
sitaowang1998 Apr 21, 2025
1c78960
Use cmake install-deps-and-generate-settings to install dependencies
sitaowang1998 Apr 21, 2025
a47cb8f
Fix clang tidy for global variable
sitaowang1998 Apr 21, 2025
e4761d2
Use heredoc for instead of echo
sitaowang1998 Apr 22, 2025
169e0a7
fix clang tidy for global variable
sitaowang1998 Apr 22, 2025
03a14ee
Fix heredoc indentation
sitaowang1998 Apr 22, 2025
400a56d
Remove unnecessary global variables
sitaowang1998 Apr 22, 2025
bfd54d5
Add top level project check around including dependencies
sitaowang1998 Apr 22, 2025
69d106e
Improve example cmake by using absolute path
sitaowang1998 Apr 22, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 0 additions & 6 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,9 +1,3 @@
[submodule "tools/yscope-dev-utils"]
path = tools/yscope-dev-utils
url = https://github.com/y-scope/yscope-dev-utils.git
[submodule "submodules/Catch2"]
path = submodules/Catch2
url = https://github.com/catchorg/Catch2.git
[submodule "submodules/abseil-cpp"]
path = submodules/abseil-cpp
url = https://github.com/abseil/abseil-cpp.git
34 changes: 30 additions & 4 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -156,12 +156,38 @@ else()
message(FATAL_ERROR "Could not find msgpack-cxx")
endif()

# Add abseil-cpp
# Include dependency settings.
include("build/deps/cmake-settings/all.cmake")
Comment thread
davidlion marked this conversation as resolved.
Outdated

find_package(outcome REQUIRED)
if(outcome_FOUND)
message(STATUS "Found outcome.")
else()
message(FATAL_ERROR "Could not find libraries for outcome.")
endif()

find_package(Catch2 3.8.0 REQUIRED)
if(Catch2_FOUND)
message(STATUS "Found Catch2 ${Catch2_VERSION}.")
else()
message(FATAL_ERROR "Could not find libraries for Catch2.")
endif()
Comment thread
davidlion marked this conversation as resolved.

# Add abseil
set(ABSL_PROPAGATE_CXX_STD ON)
add_subdirectory(submodules/abseil-cpp)
find_package(absl REQUIRED)
if(absl_FOUND)
message(STATUS "Found abseil ${absl_VERSION}.")
else()
message(FATAL_ERROR "Could not find libraries for abseil.")
endif()

# Add catch2
add_subdirectory(submodules/Catch2)
# Add ystdlib-cpp
add_subdirectory(
"${SPIDER_YSTDLIB_SOURCE_DIRECTORY}"
"${CMAKE_BINARY_DIR}/ystdlib"
EXCLUDE_FROM_ALL
)

find_package(Threads REQUIRED)

Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@ Follow the steps below to develop and contribute to the project.
* [Task] 3.40.0 or higher

## Set up
Initialize and update submodules:
Run dependency installation task:
```shell
git submodule update --init --recursive
task deps:dep_install
```

Set up the config files for our C++ linting tools:
Expand Down
108 changes: 108 additions & 0 deletions dep-tasks.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,17 @@ version: "3"
vars:
G_SCRIPT_DIR: "{{.ROOT_DIR}}/tools/scripts"

G_ABSEIL_LIB_NAME: "absl"
G_ABSEIL_WORK_DIR: "{{.G_DEPS_DIR}}/{{.G_ABSEIL_LIB_NAME}}"
G_CATCH2_LIB_NAME: "Catch2"
G_CATCH2_WORK_DIR: "{{.G_DEPS_DIR}}/{{.G_CATCH2_LIB_NAME}}"
G_OUTCOME_LIB_NAME: "outcome"
G_OUTCOME_WORK_DIR: "{{.G_DEPS_DIR}}/{{.G_OUTCOME_LIB_NAME}}"
G_QUICKCPPLIB_LIB_NAME: "quickcpplib"
G_QUICKCPPLIB_WORK_DIR: "{{.G_DEPS_DIR}}/{{.G_QUICKCPPLIB_LIB_NAME}}"
G_YSTDLIB_LIB_NAME: "ystdlib"
G_YSTDLIB_WORK_DIR: "{{.G_DEPS_DIR}}/{{.G_YSTDLIB_LIB_NAME}}"
Comment thread
sitaowang1998 marked this conversation as resolved.
Outdated

tasks:

lib_install:
Expand All @@ -14,10 +25,107 @@ tasks:
dir: "{{.G_SCRIPT_DIR}}/lib_install/macOS"
cmds:
- "./install-lib.sh"
- task: "dep_install"

lib_install_linux:
internal: true
platforms: ["linux"]
dir: "{{.G_SCRIPT_DIR}}/lib_install/linux"
cmds:
- "./install-lib.sh"
- task: "dep_install"

dep_install:
cmds:
- task: ":utils:cmake:install-deps-and-generate-settings"
vars:
CMAKE_SETTINGS_DIR: "{{.G_DEPS_CMAKE_SETTINGS_DIR}}"
DEP_TASK: "deps:install-all-run"

install-all-run:
internal: true
deps:
- task: "install-abseil"
- task: "install-Catch2"
- task: "install-outcome"
- task: "download-ystdlib"

install-abseil:
internal: true
run: "once"
cmds:
- task: ":utils:cmake:install-remote-tar"
vars:
NAME: "{{.G_ABSEIL_LIB_NAME}}"
WORK_DIR: "{{.G_ABSEIL_WORK_DIR}}"
FILE_SHA256: "b396401fd29e2e679cace77867481d388c807671dc2acc602a0259eeb79b7811"
URL: "https://github.com/abseil/abseil-cpp/archive/refs/tags/20250127.1.tar.gz"
CMAKE_SETTINGS_DIR: "{{.G_DEPS_CMAKE_SETTINGS_DIR}}"
GEN_ARGS:
- "-DCMAKE_POSITION_INDEPENDENT_CODE=ON"

install-Catch2:
internal: true
run: "once"
cmds:
- task: ":utils:cmake:install-remote-tar"
vars:
NAME: "{{.G_CATCH2_LIB_NAME}}"
WORK_DIR: "{{.G_CATCH2_WORK_DIR}}"
FILE_SHA256: "1ab2de20460d4641553addfdfe6acd4109d871d5531f8f519a52ea4926303087"
URL: "https://github.com/catchorg/Catch2/archive/refs/tags/v3.8.0.tar.gz"
CMAKE_SETTINGS_DIR: "{{.G_DEPS_CMAKE_SETTINGS_DIR}}"
GEN_ARGS:
- "-DCMAKE_POSITION_INDEPENDENT_CODE=ON"

install-outcome:
internal: true
run: "once"
deps:
- "install-quickcpplib"
cmds:
- task: ":utils:cmake:install-remote-tar"
vars:
NAME: "{{.G_OUTCOME_LIB_NAME}}"
WORK_DIR: "{{.G_OUTCOME_WORK_DIR}}"
FILE_SHA256: "0382248cbb00806ce4b5f3ce6939797dc3b597c85fd3531614959e31ef488b39"
URL: "https://github.com/ned14/outcome/archive/refs/tags/v2.2.11.tar.gz"
CMAKE_SETTINGS_DIR: "{{.G_DEPS_CMAKE_SETTINGS_DIR}}"
GEN_ARGS:
- "-C {{.G_DEPS_CMAKE_SETTINGS_DIR}}/{{.G_QUICKCPPLIB_LIB_NAME}}.cmake"
- "-DBUILD_TESTING=OFF"
- "-DCMAKE_BUILD_TYPE=Release"
- "-DCMAKE_POLICY_DEFAULT_CMP0074=NEW"
- "-DCMAKE_POSITION_INDEPENDENT_CODE=ON"

install-quickcpplib:
internal: true
run: "once"
cmds:
- task: ":utils:cmake:install-remote-tar"
vars:
NAME: "{{.G_QUICKCPPLIB_LIB_NAME}}"
WORK_DIR: "{{.G_QUICKCPPLIB_WORK_DIR}}"
FILE_SHA256: "5d4c9b2d6fa177d3fb14f3fe3086867e43b44f4a7a944eb10ee4616b2b0f3c05"
URL: "https://github.com/ned14/quickcpplib/archive/f3e452e.tar.gz"
CMAKE_SETTINGS_DIR: "{{.G_DEPS_CMAKE_SETTINGS_DIR}}"
GEN_ARGS:
- "-DBUILD_TESTING=OFF"
- "-DCMAKE_BUILD_TYPE=Release"
- "-DCMAKE_POSITION_INDEPENDENT_CODE=ON"

download-ystdlib:
internal: true
run: "once"
cmds:
- task: ":utils:remote:download-and-extract-tar"
vars:
FILE_SHA256: "d3fc9804eacb3ee4f156ae0ca37151cb04847580"
OUTPUT_DIR: "{{.G_YSTDLIB_WORK_DIR}}/{{.G_YSTDLIB_LIB_NAME}}-src"
URL: "https://github.com/y-scope/ystdlib-cpp/archive/d3fc980.tar.gz"
- |
cat <<EOF >> "{{.G_DEPS_CMAKE_SETTINGS_DIR}}/{{.G_YSTDLIB_LIB_NAME}}.cmake"
set(
SPIDER_YSTDLIB_SOURCE_DIRECTORY "{{.G_YSTDLIB_WORK_DIR}}/{{.G_YSTDLIB_LIB_NAME}}-src"
)
EOF
Comment thread
sitaowang1998 marked this conversation as resolved.
Outdated
11 changes: 10 additions & 1 deletion lint-tasks.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -88,12 +88,21 @@ tasks:
- "--config-file '{{.ROOT_DIR}}/.clang-tidy'"
- "-p '{{.G_SPIDER_COMPILE_COMMANDS_DB}}'"
INCLUDE_PATTERNS:
- "{{.G_EXAMPLES_DIR}}/**"
- "{{.G_SRC_SPIDER_DIR}}/**"
- "{{.G_TEST_DIR}}/**"
OUTPUT_DIR: "{{.G_LINT_CLANG_TIDY_DIR}}"
ROOT_PATHS: *cpp_source_files
VENV_DIR: "{{.G_LINT_VENV_DIR}}"
- task: ":utils:cpp-lint:clang-tidy-find"
vars:
FLAGS:
- "--config-file '{{.ROOT_DIR}}/.clang-tidy'"
- "-p '{{.G_EXAMPLES_COMPILE_COMMANDS_DB}}'"
INCLUDE_PATTERNS:
- "{{.G_EXAMPLES_DIR}}/**"
OUTPUT_DIR: "{{.G_LINT_CLANG_TIDY_DIR}}"
ROOT_PATHS: *cpp_source_files
VENV_DIR: "{{.G_LINT_VENV_DIR}}"

py-check:
cmds:
Expand Down
2 changes: 1 addition & 1 deletion src/spider/.clang-format
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ IncludeCategories:
# Ex:
# - Regex: "<(fmt|spdlog)"
# Priority: 3
- Regex: "^<(absl|boost|catch2|fmt|mariadb|msgpack|spdlog)"
- Regex: "^<(absl|boost|catch2|fmt|mariadb|msgpack|spdlog|ystdlib)"
Priority: 3
# C system headers
- Regex: "^<.+\\.h>"
Expand Down
1 change: 1 addition & 0 deletions src/spider/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ target_link_libraries(
MariaDBClientCpp::MariaDBClientCpp
msgpack-cxx
spdlog::spdlog
ystdlib::error_handling
)
target_link_libraries(spider_core PRIVATE fmt::fmt)

Expand Down
4 changes: 2 additions & 2 deletions src/spider/worker/DllLoader.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ auto DllLoader::load_dll(std::string const& path_str) -> bool {

auto const function_manager_func = boost::dll::import_alias<core::FunctionManager&()>(
library,
"function_manager_get_instance"
"g_function_manager_get_instance"
);
core::FunctionManager const& function_manager = function_manager_func();
core::FunctionMap const& function_map = function_manager.get_function_map();
Expand All @@ -39,7 +39,7 @@ auto DllLoader::load_dll(std::string const& path_str) -> bool {
auto const function_name_manager_func
= boost::dll::import_alias<core::FunctionNameManager&()>(
library,
"function_name_manager_get_instance"
"g_function_name_manager_get_instance"
);
core::FunctionNameManager const& function_name_manager = function_name_manager_func();
core::FunctionNameMap const& function_name_map
Expand Down
2 changes: 1 addition & 1 deletion src/spider/worker/FunctionManager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -115,4 +115,4 @@ auto FunctionManager::get_function(std::string const& name) const -> Function co
} // namespace spider::core

// NOLINTNEXTLINE(cppcoreguidelines-avoid-non-const-global-variables)
BOOST_DLL_ALIAS(spider::core::FunctionManager::get_instance, function_manager_get_instance)
BOOST_DLL_ALIAS(spider::core::FunctionManager::get_instance, g_function_manager_get_instance)
2 changes: 1 addition & 1 deletion src/spider/worker/FunctionNameManager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -22,5 +22,5 @@ auto FunctionNameManager::get_function_name(void const* ptr) const -> std::optio
// NOLINTNEXTLINE(cppcoreguidelines-avoid-non-const-global-variables)
BOOST_DLL_ALIAS(
spider::core::FunctionNameManager::get_instance,
function_name_manager_get_instance
g_function_name_manager_get_instance
);
1 change: 0 additions & 1 deletion submodules/Catch2
Submodule Catch2 deleted from a6ee7e
1 change: 0 additions & 1 deletion submodules/abseil-cpp
Submodule abseil-cpp deleted from 07fff7
5 changes: 5 additions & 0 deletions taskfile.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,11 @@ vars:
G_TEST_DIR: "{{.ROOT_DIR}}/tests"
G_EXAMPLES_DIR: "{{.ROOT_DIR}}/examples"

G_DEPS_DIR: "{{.G_BUILD_DIR}}/deps"
# These should be kept in-sync with its usage in CMakeLists.txt
G_DEPS_CMAKE_SETTINGS_DIR: "{{.G_DEPS_DIR}}/cmake-settings"
G_DEPS_CMAKE_SETTINGS_FILE: "{{.G_DEPS_CMAKE_SETTINGS_DIR}}/settings.cmake"

tasks:
clean:
cmds:
Expand Down