updated build system
Some checks are pending
BlockStorage/repertory/pipeline/head Build queued...

This commit is contained in:
Scott E. Graves 2024-08-03 12:15:08 -05:00
parent 7a1fb4a790
commit 035f830b71
34 changed files with 32 additions and 27 deletions

View File

@ -163,6 +163,7 @@ endif()
-DPROJECT_REQUIRE_ALPINE=${PROJECT_REQUIRE_ALPINE}
-DPROJECT_REVISION_VERSION=${PROJECT_REVISION_VERSION}
-DPROJECT_STATIC_LINK=${PROJECT_STATIC_LINK}
-DPROJECT_SUPPORT_DIR=${PROJECT_SUPPORT_DIR}
-DPROJECT_TOOLCHAIN_FILE_CMAKE=${PROJECT_TOOLCHAIN_FILE_CMAKE}
-DPROJECT_TOOLCHAIN_FILE_MESON=${PROJECT_TOOLCHAIN_FILE_MESON}
-DPROJECT_URL=${PROJECT_URL}

View File

@ -105,7 +105,7 @@ function(add_project_test_executable name dependencies libraries)
enable_testing()
file(GLOB_RECURSE headers
${PROJECT_3RD_PARTY_DIR}/test/include/*.hpp
${PROJECT_SUPPORT_DIR}/test/include/*.hpp
${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}/${name}/include/*.h
${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}/${name}/include/*.hh
${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}/${name}/include/${name}/include/*.hpp
@ -113,7 +113,7 @@ function(add_project_test_executable name dependencies libraries)
)
file(GLOB_RECURSE sources
${PROJECT_3RD_PARTY_DIR}/test/src/*.cpp
${PROJECT_SUPPORT_DIR}/test/src/*.cpp
${additional_sources}
${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}/${name}/src/*.c
${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}/${name}/src/*.cc
@ -130,7 +130,7 @@ function(add_project_test_executable name dependencies libraries)
)
target_include_directories(${name} AFTER PRIVATE
${PROJECT_3RD_PARTY_DIR}/test/include
${PROJECT_SUPPORT_DIR}/test/include
)
target_link_libraries(${name} PRIVATE

View File

@ -41,7 +41,7 @@ if(PROJECT_IS_MINGW)
endif()
include_directories(BEFORE SYSTEM
${PROJECT_3RD_PARTY_DIR}/include
${PROJECT_SUPPORT_DIR}/include
${PROJECT_EXTERNAL_BUILD_ROOT}/include
)

View File

@ -193,7 +193,8 @@ fi
PROJECT_DIST_DIR=${PROJECT_DIST_DIR}/${PROJECT_NAME}
PROJECT_EXTERNAL_BUILD_ROOT=${PROJECT_BUILD_DIR}/deps
PROJECT_3RD_PARTY_DIR=${PROJECT_SOURCE_DIR}/support/3rd_party
PROJECT_SUPPORT_DIR=${PROJECT_SOURCE_DIR}/support
PROJECT_3RD_PARTY_DIR=${PROJECT_SUPPORT_DIR}/3rd_party
if [ "${PROJECT_ENABLE_OPENSSL}" == "ON" ]; then
if [ "${PROJECT_IS_MINGW}" == "1" ] && [ "${PROJECT_IS_MINGW_UNIX}" == "1" ]; then
@ -237,6 +238,7 @@ PROJECT_CMAKE_OPTS="-DPROJECT_RELEASE_NUM=${PROJECT_RELEASE_NUM} ${PROJECT_CMAKE
PROJECT_CMAKE_OPTS="-DPROJECT_REQUIRE_ALPINE=${PROJECT_REQUIRE_ALPINE} ${PROJECT_CMAKE_OPTS}"
PROJECT_CMAKE_OPTS="-DPROJECT_REVISION_VERSION=${PROJECT_REVISION_VERSION} ${PROJECT_CMAKE_OPTS}"
PROJECT_CMAKE_OPTS="-DPROJECT_STATIC_LINK=${PROJECT_STATIC_LINK} ${PROJECT_CMAKE_OPTS}"
PROJECT_CMAKE_OPTS="-DPROJECT_SUPPORT_DIR=${PROJECT_SUPPORT_DIR} ${PROJECT_CMAKE_OPTS}"
PROJECT_CMAKE_OPTS="-DPROJECT_TOOLCHAIN_FILE_CMAKE=${PROJECT_TOOLCHAIN_FILE_CMAKE} ${PROJECT_CMAKE_OPTS}"
PROJECT_CMAKE_OPTS="-DPROJECT_TOOLCHAIN_FILE_MESON=${PROJECT_TOOLCHAIN_FILE_MESON} ${PROJECT_CMAKE_OPTS}"
@ -310,6 +312,7 @@ export PROJECT_REQUIRE_ALPINE
export PROJECT_REVISION_VERSION
export PROJECT_SOURCE_DIR
export PROJECT_STATIC_LINK
export PROJECT_SUPPORT_DIR
export PROJECT_TOOLCHAIN_FILE_CMAKE
export PROJECT_TOOLCHAIN_FILE_MESON
export PROJECT_URL
@ -354,6 +357,7 @@ echo " PATH: ${PATH}"
echo " PKG_CONFIG_PATH: ${PKG_CONFIG_PATH}"
echo " Require Alpine: ${PROJECT_REQUIRE_ALPINE}"
echo " Static link: ${PROJECT_STATIC_LINK}"
echo " Support dir: ${PROJECT_SUPPORT_DIR}"
echo " Third-party dir: ${PROJECT_3RD_PARTY_DIR}"
echo " Unit testing enabled: ${PROJECT_ENABLE_TESTING}"
echo " URL: ${PROJECT_URL}"

View File

@ -19,16 +19,16 @@ PROJECT_LIBRARIES=(
declare -A PROJECT_CLEANUP
PROJECT_CLEANUP[BACKWARD_CPP]="include/backward.hpp:src/backward.cpp"
PROJECT_CLEANUP[BOOST]="boost_*"
PROJECT_CLEANUP[CPP_HTTPLIB]="cpp-httplib-*"
PROJECT_CLEANUP[CURL]="curl-*"
PROJECT_CLEANUP[JSON]="json-*"
PROJECT_CLEANUP[LIBBITCOIN_SYSTEM_ON]="boost_1_85_*"
PROJECT_CLEANUP[LIBSODIUM]="libsodium*"
PROJECT_CLEANUP[OPENSSL]="openssl-*"
PROJECT_CLEANUP[PUGIXML]="pugixml-*"
PROJECT_CLEANUP[SPDLOG]="spdlog-*"
PROJECT_CLEANUP[SQLITE]="sqlite*"
PROJECT_CLEANUP[STDUUID]="stduuid-*"
PROJECT_CLEANUP[TESTING]="googletest-*"
PROJECT_CLEANUP[WINFSP]="winfsp-*"
PROJECT_CLEANUP[BOOST]="3rd_party/boost_*"
PROJECT_CLEANUP[CPP_HTTPLIB]="3rd_party/cpp-httplib-*"
PROJECT_CLEANUP[CURL]="3rd_party/curl-*"
PROJECT_CLEANUP[JSON]="3rd_party/json-*"
PROJECT_CLEANUP[LIBBITCOIN_SYSTEM_ON]="3rd_party/boost_1_85_*"
PROJECT_CLEANUP[LIBSODIUM]="3rd_party/libsodium*"
PROJECT_CLEANUP[OPENSSL]="3rd_party/openssl-*"
PROJECT_CLEANUP[PUGIXML]="3rd_party/pugixml-*"
PROJECT_CLEANUP[SPDLOG]="3rd_party/spdlog-*"
PROJECT_CLEANUP[SQLITE]="3rd_party/sqlite*"
PROJECT_CLEANUP[STDUUID]="3rd_party/stduuid-*"
PROJECT_CLEANUP[TESTING]="3rd_party/googletest-*"
PROJECT_CLEANUP[WINFSP]="3rd_party/winfsp-*"

View File

@ -215,7 +215,7 @@ auto is_directory(std::string_view path) -> bool {
auto abs_path = utils::path::absolute(path);
#if defined(_WIN32)
return ::PathIsDirectory(abs_path.c_str()) != 0;
return ::PathIsDirectoryA(abs_path.c_str()) != 0;
#else // !defined(_WIN32)
struct stat st {};
return (stat(abs_path.c_str(), &st) == 0 && S_ISDIR(st.st_mode));
@ -230,8 +230,8 @@ auto is_file(std::string_view path) -> bool {
auto abs_path = utils::path::absolute(path);
#if defined(_WIN32)
return (::PathFileExists(abs_path.c_str()) &&
not ::PathIsDirectory(abs_path.c_str()));
return (::PathFileExistsA(abs_path.c_str()) &&
not ::PathIsDirectoryA(abs_path.c_str()));
#else // !defined(_WIN32)
struct stat st {};
return (stat(abs_path.c_str(), &st) == 0 && not S_ISDIR(st.st_mode));

View File

@ -69,7 +69,7 @@ namespace repertory::utils::path {
auto absolute(std::string_view path) -> std::string {
std::string abs_path{path};
#if defined(_WIN32)
if (not abs_path.empty() && ::PathIsRelative(abs_path.c_str())) {
if (not abs_path.empty() && ::PathIsRelativeA(abs_path.c_str())) {
std::string temp;
temp.resize(MAX_PATH + 1);
abs_path = _fullpath(temp.data(), abs_path.c_str(), MAX_PATH);
@ -200,7 +200,7 @@ auto remove_file_name(std::string_view path) -> std::string {
auto abs_path = absolute(path);
#if defined(_WIN32)
::PathRemoveFileSpec(abs_path.data());
::PathRemoveFileSpecA(abs_path.data());
abs_path = abs_path.c_str();
#else // !defined(_WIN32)
if (abs_path != "/") {
@ -218,7 +218,7 @@ auto remove_file_name(std::string_view path) -> std::string {
auto strip_to_file_name(std::string path) -> std::string {
#if defined(_WIN32)
return ::PathFindFileName(path.c_str());
return ::PathFindFileNameA(path.c_str());
#else // !defined(_WIN32)
return utils::string::contains(path, "/") ? basename(path.data()) : path;
#endif // defined(_WIN32)

View File

@ -78,8 +78,8 @@ auto run_process_elevated(std::vector<const char *> args) -> int {
std::string full_path;
full_path.resize(MAX_PATH + 1);
if (::GetModuleFileName(nullptr, full_path.data(), MAX_PATH)) {
SHELLEXECUTEINFO sei{};
if (::GetModuleFileNameA(nullptr, full_path.data(), MAX_PATH)) {
SHELLEXECUTEINFOA sei{};
sei.fMask = SEE_MASK_NOCLOSEPROCESS;
sei.cbSize = sizeof(sei);
sei.lpVerb = "runas";
@ -87,7 +87,7 @@ auto run_process_elevated(std::vector<const char *> args) -> int {
sei.lpParameters = parameters.c_str();
sei.hwnd = nullptr;
sei.nShow = SW_NORMAL;
if (::ShellExecuteEx(&sei)) {
if (::ShellExecuteExA(&sei)) {
::WaitForSingleObject(sei.hProcess, INFINITE);
DWORD exit_code{};
::GetExitCodeProcess(sei.hProcess, &exit_code);