Finally got eCAL to build, including all dependencies.
parent
62747bab18
commit
ab11f36e72
|
|
@ -12,6 +12,9 @@ import datetime
|
||||||
import logging as log
|
import logging as log
|
||||||
import importlib
|
import importlib
|
||||||
|
|
||||||
|
from build_functions.build_ecal import build_ecal
|
||||||
|
from build_functions.build_ecaludp import build_ecaludp
|
||||||
|
from build_functions.build_ftxui import build_ftxui
|
||||||
from build_functions.build_abseil import build_abseil
|
from build_functions.build_abseil import build_abseil
|
||||||
from build_functions.build_asio import build_asio
|
from build_functions.build_asio import build_asio
|
||||||
from build_functions.build_boost import build_boost
|
from build_functions.build_boost import build_boost
|
||||||
|
|
@ -33,6 +36,7 @@ from build_functions.build_opencv import build_opencv
|
||||||
from build_functions.build_openssl import build_openssl
|
from build_functions.build_openssl import build_openssl
|
||||||
from build_functions.build_opensubdiv import build_opensubdiv
|
from build_functions.build_opensubdiv import build_opensubdiv
|
||||||
from build_functions.build_openusd import build_openusd
|
from build_functions.build_openusd import build_openusd
|
||||||
|
from build_functions.build_pcapplusplus import build_pcapplusplus
|
||||||
from build_functions.build_protobuf import build_protobuf
|
from build_functions.build_protobuf import build_protobuf
|
||||||
from build_functions.build_qt5 import build_qt5
|
from build_functions.build_qt5 import build_qt5
|
||||||
from build_functions.build_qt6 import build_qt6
|
from build_functions.build_qt6 import build_qt6
|
||||||
|
|
@ -44,6 +48,7 @@ from build_functions.build_re2 import build_re2
|
||||||
from build_functions.build_tcp_pubsub import build_tcp_pubsub
|
from build_functions.build_tcp_pubsub import build_tcp_pubsub
|
||||||
from build_functions.build_termcolor import build_termcolor
|
from build_functions.build_termcolor import build_termcolor
|
||||||
from build_functions.build_tinyxml2 import build_tinyxml2
|
from build_functions.build_tinyxml2 import build_tinyxml2
|
||||||
|
from build_functions.build_udpcap import build_udpcap
|
||||||
from build_functions.build_yaml_cpp import build_yaml_cpp
|
from build_functions.build_yaml_cpp import build_yaml_cpp
|
||||||
from build_functions.build_zlib import build_zlib
|
from build_functions.build_zlib import build_zlib
|
||||||
|
|
||||||
|
|
@ -84,22 +89,24 @@ def build_all(prefix: Path | str) -> dict:
|
||||||
file_and_console_log(f"Installing to: {prefix}")
|
file_and_console_log(f"Installing to: {prefix}")
|
||||||
|
|
||||||
# First those without any dependencies
|
# First those without any dependencies
|
||||||
build_asio(prefix, sbom)
|
|
||||||
build_tclap(prefix, sbom)
|
|
||||||
build_spdlog(prefix, sbom)
|
|
||||||
build_boost(prefix, sbom)
|
|
||||||
build_zlib(prefix, sbom)
|
|
||||||
build_glog(prefix, sbom)
|
|
||||||
build_abseil(prefix, sbom)
|
build_abseil(prefix, sbom)
|
||||||
|
build_asio(prefix, sbom)
|
||||||
|
build_boost(prefix, sbom)
|
||||||
|
build_cares(prefix, sbom)
|
||||||
|
build_ftxui(prefix, sbom)
|
||||||
|
build_glog(prefix, sbom)
|
||||||
build_eigen(prefix, sbom)
|
build_eigen(prefix, sbom)
|
||||||
build_libzmq(prefix, sbom)
|
build_libzmq(prefix, sbom)
|
||||||
build_jpeg(prefix, sbom)
|
build_jpeg(prefix, sbom)
|
||||||
build_onetbb(prefix, sbom)
|
build_onetbb(prefix, sbom)
|
||||||
build_cares(prefix, sbom)
|
# build_pcapplusplus(prefix, sbom)
|
||||||
|
build_spdlog(prefix, sbom)
|
||||||
|
build_tclap(prefix, sbom)
|
||||||
build_recycle(prefix, sbom)
|
build_recycle(prefix, sbom)
|
||||||
build_termcolor(prefix, sbom)
|
build_termcolor(prefix, sbom)
|
||||||
build_tinyxml2(prefix, sbom)
|
build_tinyxml2(prefix, sbom)
|
||||||
build_yaml_cpp(prefix, sbom)
|
build_yaml_cpp(prefix, sbom)
|
||||||
|
build_zlib(prefix, sbom)
|
||||||
|
|
||||||
# Conditional. This could depend on abseil but I'll try to build without
|
# Conditional. This could depend on abseil but I'll try to build without
|
||||||
build_googletest(prefix, sbom)
|
build_googletest(prefix, sbom)
|
||||||
|
|
@ -107,6 +114,7 @@ def build_all(prefix: Path | str) -> dict:
|
||||||
# Then the ones that depend on any of those above
|
# Then the ones that depend on any of those above
|
||||||
# Note that this doesn't constitute a dependency tree yet
|
# Note that this doesn't constitute a dependency tree yet
|
||||||
build_curl(prefix, sbom)
|
build_curl(prefix, sbom)
|
||||||
|
build_ecaludp(prefix, sbom)
|
||||||
build_fineftp(prefix, sbom)
|
build_fineftp(prefix, sbom)
|
||||||
build_re2(prefix, sbom)
|
build_re2(prefix, sbom)
|
||||||
build_cppzmq(prefix, sbom)
|
build_cppzmq(prefix, sbom)
|
||||||
|
|
@ -119,12 +127,14 @@ def build_all(prefix: Path | str) -> dict:
|
||||||
build_openusd(prefix, sbom)
|
build_openusd(prefix, sbom)
|
||||||
build_hdf5(prefix, sbom)
|
build_hdf5(prefix, sbom)
|
||||||
build_tcp_pubsub(prefix, sbom)
|
build_tcp_pubsub(prefix, sbom)
|
||||||
|
# build_udpcap(prefix, sbom)
|
||||||
|
|
||||||
# This one gets a special place as it depends on many of the above
|
# This one gets a special place as it depends on many of the above
|
||||||
build_grpc(prefix, sbom)
|
build_grpc(prefix, sbom)
|
||||||
build_qt5(prefix, sbom)
|
build_qt5(prefix, sbom)
|
||||||
build_qt6(prefix, sbom)
|
build_qt6(prefix, sbom)
|
||||||
build_qwt(prefix, sbom)
|
build_qwt(prefix, sbom)
|
||||||
|
build_ecal(prefix, sbom)
|
||||||
|
|
||||||
return sbom
|
return sbom
|
||||||
|
|
||||||
|
|
@ -133,15 +143,18 @@ build_functions = {
|
||||||
"abseil-cpp": build_abseil,
|
"abseil-cpp": build_abseil,
|
||||||
"asio": build_asio,
|
"asio": build_asio,
|
||||||
"boost": build_boost,
|
"boost": build_boost,
|
||||||
|
"ceres-solver": build_ceres,
|
||||||
"curl": build_curl,
|
"curl": build_curl,
|
||||||
"glog": build_glog,
|
"glog": build_glog,
|
||||||
"hdf5": build_hdf5,
|
"hdf5": build_hdf5,
|
||||||
"protobuf": build_protobuf,
|
"protobuf": build_protobuf,
|
||||||
|
"ecal": build_ecal,
|
||||||
|
"ecaludp": build_ecaludp,
|
||||||
"eigen": build_eigen,
|
"eigen": build_eigen,
|
||||||
"ceres-solver": build_ceres,
|
|
||||||
"libzmq": build_libzmq,
|
"libzmq": build_libzmq,
|
||||||
"cppzmq": build_cppzmq,
|
"cppzmq": build_cppzmq,
|
||||||
"fineftp": build_fineftp,
|
"fineftp": build_fineftp,
|
||||||
|
"ftxui": build_ftxui,
|
||||||
"googletest": build_googletest,
|
"googletest": build_googletest,
|
||||||
"libjpeg-turbo": build_jpeg,
|
"libjpeg-turbo": build_jpeg,
|
||||||
"opencv": build_opencv,
|
"opencv": build_opencv,
|
||||||
|
|
@ -150,6 +163,7 @@ build_functions = {
|
||||||
"opensubdiv": build_opensubdiv,
|
"opensubdiv": build_opensubdiv,
|
||||||
"openusd": build_openusd,
|
"openusd": build_openusd,
|
||||||
"onetbb": build_onetbb,
|
"onetbb": build_onetbb,
|
||||||
|
"pcapplusplus": build_pcapplusplus,
|
||||||
"re2": build_re2,
|
"re2": build_re2,
|
||||||
"recycle": build_recycle,
|
"recycle": build_recycle,
|
||||||
"spdlog": build_spdlog,
|
"spdlog": build_spdlog,
|
||||||
|
|
@ -162,6 +176,7 @@ build_functions = {
|
||||||
"termcolor": build_termcolor,
|
"termcolor": build_termcolor,
|
||||||
"tcp_pubsub": build_tcp_pubsub,
|
"tcp_pubsub": build_tcp_pubsub,
|
||||||
"tinyxml2": build_tinyxml2,
|
"tinyxml2": build_tinyxml2,
|
||||||
|
"udpcap": build_udpcap,
|
||||||
"yaml-cpp": build_yaml_cpp,
|
"yaml-cpp": build_yaml_cpp,
|
||||||
"zlib": build_zlib,
|
"zlib": build_zlib,
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@ from package.package_info import get_package_info
|
||||||
|
|
||||||
def build_abseil(prefix: Path | str, sbom: dict):
|
def build_abseil(prefix: Path | str, sbom: dict):
|
||||||
|
|
||||||
print_banner("Building Abseil (Protobuf Dependency)")
|
print_banner("Building Abseil")
|
||||||
|
|
||||||
package_info = get_package_info("abseil-cpp")
|
package_info = get_package_info("abseil-cpp")
|
||||||
package_info.add_to_sbom(sbom)
|
package_info.add_to_sbom(sbom)
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,86 @@
|
||||||
|
# (c) 2025 by Stephan Menzel
|
||||||
|
# Licensed under the Apache License, Version 2.0.
|
||||||
|
# See attached file LICENSE for full details
|
||||||
|
|
||||||
|
import subprocess
|
||||||
|
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
|
import common.settings
|
||||||
|
from build_functions.build_utils import print_banner
|
||||||
|
from common.azure import write_package_version_batch
|
||||||
|
from common.cmake import cmake_build_install, assemble_prefix_path
|
||||||
|
from common.directory_helpers import pushd
|
||||||
|
from common.git_helpers import clone_git_tag
|
||||||
|
from package.package_info import get_package_info, PackageInfo
|
||||||
|
|
||||||
|
|
||||||
|
def build_ecal(prefix: Path | str, sbom: dict):
|
||||||
|
|
||||||
|
print_banner("Building eCAL")
|
||||||
|
|
||||||
|
package_info = get_package_info("ecal")
|
||||||
|
package_info.add_to_sbom(sbom)
|
||||||
|
|
||||||
|
asio_install_path = package_info.dependency_path("asio")
|
||||||
|
|
||||||
|
deps = [
|
||||||
|
package_info.dependency("abseil-cpp"),
|
||||||
|
package_info.dependency("asio"),
|
||||||
|
package_info.dependency("curl"),
|
||||||
|
package_info.dependency("ecaludp"),
|
||||||
|
package_info.dependency("fineftp"),
|
||||||
|
package_info.dependency("ftxui"),
|
||||||
|
package_info.dependency("hdf5"),
|
||||||
|
package_info.dependency("protobuf"),
|
||||||
|
package_info.dependency("qt5"),
|
||||||
|
package_info.dependency("qwt"),
|
||||||
|
package_info.dependency("recycle"),
|
||||||
|
package_info.dependency("spdlog"),
|
||||||
|
package_info.dependency("tclap"),
|
||||||
|
package_info.dependency("tcp_pubsub"),
|
||||||
|
package_info.dependency("termcolor"),
|
||||||
|
package_info.dependency("tinyxml2"),
|
||||||
|
package_info.dependency("yaml-cpp"),
|
||||||
|
package_info.dependency("zlib")
|
||||||
|
]
|
||||||
|
|
||||||
|
src_dir = clone_git_tag(package_info, recursive=False)
|
||||||
|
|
||||||
|
global cpp_standard
|
||||||
|
prev_cpp_standard = common.settings.cpp_standard
|
||||||
|
common.settings.cpp_standard = "17"
|
||||||
|
|
||||||
|
# We have a little problem here. They use a module called CMakeFunctions, which is not
|
||||||
|
# really a standalone dependency but checked in directly. This needs to be built before
|
||||||
|
# the actual build can start. Quite ugly, since this doesn't have a PackageInfo. I have to fake this
|
||||||
|
# To make things worse, this module also needs a patch. But so does the rest of ecal, so we apply it before
|
||||||
|
cmf_fake_info = PackageInfo.__new__(PackageInfo)
|
||||||
|
cmf_fake_info.name = "cmakefunctions"
|
||||||
|
cmf_fake_info.version = "0.0.1"
|
||||||
|
|
||||||
|
patchfile = Path(__file__).resolve().parent.parent / "patches" / "ecal" / "ecal_6.0.0_rc3_windows.patch"
|
||||||
|
with pushd(src_dir):
|
||||||
|
subprocess.run(["git", "apply", str(patchfile)])
|
||||||
|
|
||||||
|
cmake_functions_src_dir = src_dir / "thirdparty" / "cmakefunctions" / "cmake_functions"
|
||||||
|
cmake_functions_install_dir = cmake_build_install(cmake_functions_src_dir, cmf_fake_info, cmake_args=[])
|
||||||
|
|
||||||
|
cmake_args = [
|
||||||
|
("ECAL_BUILD_APPS:BOOL", "OFF"),
|
||||||
|
("ECAL_BUILD_DOCS:BOOL", "OFF"),
|
||||||
|
("ECAL_BUILD_SAMPLES:BOOL", "OFF"),
|
||||||
|
("ECAL_BUILD_TIMEPLUGINS:BOOL", "OFF"),
|
||||||
|
("ECAL_BUILD_CSHARP_BINDING:BOOL", "OFF"),
|
||||||
|
("ECAL_USE_NPCAP:BOOL", "OFF"),
|
||||||
|
("CMakeFunctions_DIR:PATH", str(cmake_functions_install_dir / "cmake")),
|
||||||
|
("asio_DIR:PATH", str(asio_install_path)),
|
||||||
|
("CMAKE_PREFIX_PATH:STRING", assemble_prefix_path(deps)),
|
||||||
|
]
|
||||||
|
|
||||||
|
install_dir = cmake_build_install(src_dir, package_info, cmake_args=cmake_args)
|
||||||
|
write_package_version_batch(package_info.version)
|
||||||
|
|
||||||
|
common.settings.cpp_standard = prev_cpp_standard
|
||||||
|
|
||||||
|
return install_dir
|
||||||
|
|
@ -0,0 +1,48 @@
|
||||||
|
# (c) 2025 by Stephan Menzel
|
||||||
|
# Licensed under the Apache License, Version 2.0.
|
||||||
|
# See attached file LICENSE for full details
|
||||||
|
import subprocess
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
|
from build_functions.build_utils import print_banner
|
||||||
|
from common.azure import write_package_version_batch
|
||||||
|
from common.cmake import cmake_build_install
|
||||||
|
from common.directory_helpers import pushd
|
||||||
|
from common.git_helpers import clone_git_tag
|
||||||
|
from common.settings import temporarily_set_shared, build_dir
|
||||||
|
from package.package_info import get_package_info
|
||||||
|
|
||||||
|
def build_ecaludp(prefix: Path | str, sbom: dict):
|
||||||
|
|
||||||
|
print_banner("Building ecaludp")
|
||||||
|
|
||||||
|
package_info = get_package_info("ecaludp")
|
||||||
|
package_info.add_to_sbom(sbom)
|
||||||
|
|
||||||
|
asio_install_path = package_info.dependency_path("asio")
|
||||||
|
recycle_install_path = package_info.dependency_path("recycle")
|
||||||
|
|
||||||
|
cmake_args = [
|
||||||
|
("ECALUDP_ENABLE_NPCAP:BOOL", "OFF"),
|
||||||
|
("ECALUDP_BUILD_SAMPLES:BOOL", "OFF"),
|
||||||
|
("ECALUDP_BUILD_TESTS:BOOL", "OFF"),
|
||||||
|
("ECALUDP_USE_BUILTIN_ASIO:BOOL", "OFF"),
|
||||||
|
("ECALUDP_USE_BUILTIN_RECYCLE:BOOL", "OFF"),
|
||||||
|
("ECALUDP_USE_BUILTIN_GTEST:BOOL", "OFF"),
|
||||||
|
|
||||||
|
("asio_DIR:PATH", str(asio_install_path)),
|
||||||
|
("recycle_DIR:PATH", str(recycle_install_path))
|
||||||
|
]
|
||||||
|
src_dir = clone_git_tag(package_info, recursive=False)
|
||||||
|
|
||||||
|
# I didn't manage to build it using the present asio because of what I think is a bug
|
||||||
|
# in their CMake structure. They treat asio as an imported target (with binaries?), yet it is header only.
|
||||||
|
# I try to patch that out.
|
||||||
|
patchfile = Path(__file__).resolve().parent.parent / "patches" / "ecal" / "ecal_asio_cmake_fix.patch"
|
||||||
|
|
||||||
|
with pushd(src_dir):
|
||||||
|
subprocess.run(["git", "apply", str(patchfile)])
|
||||||
|
|
||||||
|
install_dir = cmake_build_install(src_dir, package_info, cmake_args=cmake_args)
|
||||||
|
write_package_version_batch(package_info.version)
|
||||||
|
return install_dir
|
||||||
|
|
@ -24,7 +24,7 @@ def build_eigen(prefix: Path | str, sbom: dict):
|
||||||
# but I can't switch to master for a medical device.
|
# but I can't switch to master for a medical device.
|
||||||
global cpp_standard
|
global cpp_standard
|
||||||
prev_cpp_standard = common.settings.cpp_standard
|
prev_cpp_standard = common.settings.cpp_standard
|
||||||
cpp_standard = "11"
|
common.settings.cpp_standard = "11"
|
||||||
|
|
||||||
package_info.add_to_sbom(sbom)
|
package_info.add_to_sbom(sbom)
|
||||||
|
|
||||||
|
|
@ -35,6 +35,6 @@ def build_eigen(prefix: Path | str, sbom: dict):
|
||||||
install_dir = cmake_build_install(eigen_dir, package_info, cmake_args=eigen_cmake_args)
|
install_dir = cmake_build_install(eigen_dir, package_info, cmake_args=eigen_cmake_args)
|
||||||
write_package_version_batch(package_info.version)
|
write_package_version_batch(package_info.version)
|
||||||
|
|
||||||
cpp_standard = prev_cpp_standard
|
common.settings.cpp_standard = prev_cpp_standard
|
||||||
|
|
||||||
return install_dir
|
return install_dir
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,31 @@
|
||||||
|
# (c) 2025 by Stephan Menzel
|
||||||
|
# Licensed under the Apache License, Version 2.0.
|
||||||
|
# See attached file LICENSE for full details
|
||||||
|
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
|
from build_functions.build_utils import print_banner
|
||||||
|
from common.azure import write_package_version_batch
|
||||||
|
from common.cmake import cmake_build_install
|
||||||
|
from common.git_helpers import clone_git_tag
|
||||||
|
from common.settings import temporarily_set_shared
|
||||||
|
from package.package_info import get_package_info
|
||||||
|
|
||||||
|
def build_ftxui(prefix: Path | str, sbom: dict):
|
||||||
|
|
||||||
|
print_banner("Building ftxui")
|
||||||
|
|
||||||
|
package_info = get_package_info("ftxui")
|
||||||
|
package_info.add_to_sbom(sbom)
|
||||||
|
|
||||||
|
cmake_args = [
|
||||||
|
("FTXUI_BUILD_DOCS:BOOL", "OFF"),
|
||||||
|
("FTXUI_BUILD_EXAMPLES:BOOL", "OFF"),
|
||||||
|
("FTXUI_BUILD_MODULES:BOOL", "OFF"),
|
||||||
|
("FTXUI_BUILD_TESTS:BOOL", "OFF"),
|
||||||
|
("FTXUI_BUILD_TESTS_FUZZER:BOOL", "OFF")
|
||||||
|
]
|
||||||
|
src_dir = clone_git_tag(package_info, recursive=False)
|
||||||
|
install_dir = cmake_build_install(src_dir, package_info, cmake_args=cmake_args)
|
||||||
|
write_package_version_batch(package_info.version)
|
||||||
|
return install_dir
|
||||||
|
|
@ -0,0 +1,33 @@
|
||||||
|
# (c) 2025 by Stephan Menzel
|
||||||
|
# Licensed under the Apache License, Version 2.0.
|
||||||
|
# See attached file LICENSE for full details
|
||||||
|
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
|
from build_functions.build_utils import print_banner
|
||||||
|
from common.azure import write_package_version_batch
|
||||||
|
from common.cmake import cmake_build_install
|
||||||
|
from common.git_helpers import clone_git_tag
|
||||||
|
from common.settings import temporarily_set_shared
|
||||||
|
from package.package_info import get_package_info
|
||||||
|
|
||||||
|
def build_pcapplusplus(prefix: Path | str, sbom: dict):
|
||||||
|
|
||||||
|
print_banner("Building PCapPlusPlus")
|
||||||
|
|
||||||
|
package_info = get_package_info("pcapplusplus")
|
||||||
|
package_info.add_to_sbom(sbom)
|
||||||
|
|
||||||
|
cmake_args = [
|
||||||
|
("UDPCAP_BUILD_SAMPLES:BOOL", "OFF"),
|
||||||
|
("UDPCAP_BUILD_TESTS:BOOL", "OFF"),
|
||||||
|
("UDPCAP_THIRDPARTY_ENABLED:BOOL", "ON"),
|
||||||
|
("UDPCAP_THIRDPARTY_USE_BUILTIN_NPCAP:BOOL", "OFF"),
|
||||||
|
("UDPCAP_THIRDPARTY_USE_BUILTIN_PCAPPLUSPLUS:BOOL", "OFF"),
|
||||||
|
("UDPCAP_THIRDPARTY_USE_BUILTIN_ASIO:BOOL", "OFF"),
|
||||||
|
("UDPCAP_THIRDPARTY_USE_BUILTIN_GTEST:BOOL", "OFF"),
|
||||||
|
]
|
||||||
|
src_dir = clone_git_tag(package_info, recursive=False)
|
||||||
|
install_dir = cmake_build_install(src_dir, package_info, cmake_args=cmake_args)
|
||||||
|
write_package_version_batch(package_info.version)
|
||||||
|
return install_dir
|
||||||
|
|
@ -0,0 +1,33 @@
|
||||||
|
# (c) 2025 by Stephan Menzel
|
||||||
|
# Licensed under the Apache License, Version 2.0.
|
||||||
|
# See attached file LICENSE for full details
|
||||||
|
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
|
from build_functions.build_utils import print_banner
|
||||||
|
from common.azure import write_package_version_batch
|
||||||
|
from common.cmake import cmake_build_install
|
||||||
|
from common.git_helpers import clone_git_tag
|
||||||
|
from common.settings import temporarily_set_shared
|
||||||
|
from package.package_info import get_package_info
|
||||||
|
|
||||||
|
def build_pcapplusplus(prefix: Path | str, sbom: dict):
|
||||||
|
|
||||||
|
print_banner("Building PCapPlusPlus")
|
||||||
|
|
||||||
|
package_info = get_package_info("pcapplusplus")
|
||||||
|
package_info.add_to_sbom(sbom)
|
||||||
|
|
||||||
|
cmake_args = [
|
||||||
|
("UDPCAP_BUILD_SAMPLES:BOOL", "OFF"),
|
||||||
|
("UDPCAP_BUILD_TESTS:BOOL", "OFF"),
|
||||||
|
("UDPCAP_THIRDPARTY_ENABLED:BOOL", "ON"),
|
||||||
|
("UDPCAP_THIRDPARTY_USE_BUILTIN_NPCAP:BOOL", "OFF"),
|
||||||
|
("UDPCAP_THIRDPARTY_USE_BUILTIN_PCAPPLUSPLUS:BOOL", "OFF"),
|
||||||
|
("UDPCAP_THIRDPARTY_USE_BUILTIN_ASIO:BOOL", "OFF"),
|
||||||
|
("UDPCAP_THIRDPARTY_USE_BUILTIN_GTEST:BOOL", "OFF"),
|
||||||
|
]
|
||||||
|
src_dir = clone_git_tag(package_info, recursive=False)
|
||||||
|
install_dir = cmake_build_install(src_dir, package_info, cmake_args=cmake_args)
|
||||||
|
write_package_version_batch(package_info.version)
|
||||||
|
return install_dir
|
||||||
|
|
@ -6,7 +6,7 @@ from pathlib import Path
|
||||||
|
|
||||||
from build_functions.build_utils import print_banner
|
from build_functions.build_utils import print_banner
|
||||||
from common.azure import write_package_version_batch
|
from common.azure import write_package_version_batch
|
||||||
from common.cmake import cmake_build_install
|
from common.cmake import cmake_build_install, assemble_prefix_path
|
||||||
from common.git_helpers import clone_git_tag
|
from common.git_helpers import clone_git_tag
|
||||||
import common.settings
|
import common.settings
|
||||||
from package.package_info import get_package_info
|
from package.package_info import get_package_info
|
||||||
|
|
@ -18,24 +18,23 @@ def build_protobuf(prefix: Path | str, sbom: dict):
|
||||||
package_info = get_package_info("protobuf")
|
package_info = get_package_info("protobuf")
|
||||||
package_info.add_to_sbom(sbom)
|
package_info.add_to_sbom(sbom)
|
||||||
|
|
||||||
abseil_install_path = package_info.dependency_path("abseil-cpp")
|
deps = [
|
||||||
zlib_install_path = package_info.dependency_path("zlib")
|
package_info.dependency("abseil-cpp"),
|
||||||
|
package_info.dependency("zlib")
|
||||||
|
]
|
||||||
|
|
||||||
protobuf_cmake_args = [
|
protobuf_cmake_args = [
|
||||||
("BUILD_SHARED_LIBS:BOOL", "OFF"),
|
("BUILD_SHARED_LIBS:BOOL", "OFF"),
|
||||||
("BUILD_TESTING:BOOL", "OFF"),
|
("BUILD_TESTING:BOOL", "OFF"),
|
||||||
("protobuf_BUILD_TESTS:BOOL", "OFF"),
|
("protobuf_BUILD_TESTS:BOOL", "OFF"),
|
||||||
("protobuf_WITH_ZLIB:BOOL", "ON"),
|
("protobuf_WITH_ZLIB:BOOL", "ON"),
|
||||||
("ABSL_PROPAGATE_CXX_STD:BOOL", "ON"),
|
# ("ABSL_PROPAGATE_CXX_STD:BOOL", "ON"),
|
||||||
("protobuf_MSVC_STATIC_RUNTIME:BOOL", "OFF"),
|
("protobuf_MSVC_STATIC_RUNTIME:BOOL", "OFF"),
|
||||||
("protobuf_ABSL_PROVIDER:STRING", "package"),
|
("protobuf_ABSL_PROVIDER:STRING", "package"),
|
||||||
("absl_DIR:PATH", str(abseil_install_path / "lib" / "cmake" / "absl")),
|
|
||||||
("protobuf_INSTALL:BOOL", "ON"),
|
|
||||||
("protobuf_ZLIB_PROVIDER:STRING", "package"),
|
("protobuf_ZLIB_PROVIDER:STRING", "package"),
|
||||||
("ZLIB_ROOT:PATH", str(zlib_install_path)),
|
("CMAKE_PREFIX_PATH:STRING", assemble_prefix_path(deps)),
|
||||||
|
("protobuf_INSTALL:BOOL", "ON"),
|
||||||
("ZLIB_USE_STATIC_LIBS:BOOL", "ON"), # doesn't appear to do its job
|
("ZLIB_USE_STATIC_LIBS:BOOL", "ON"), # doesn't appear to do its job
|
||||||
("ZLIB_LIBRARY_RELEASE:FILEPATH", str(zlib_install_path / "lib" / common.settings.zlib_static_lib_name)),
|
|
||||||
("ZLIB_LIBRARY_DEBUG:FILEPATH", str(zlib_install_path / "lib" / common.settings.zlib_static_lib_name))
|
|
||||||
# We are on fake debug
|
# We are on fake debug
|
||||||
]
|
]
|
||||||
protobuf_dir = clone_git_tag(package_info, recursive=False)
|
protobuf_dir = clone_git_tag(package_info, recursive=False)
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
# (c) 2025 by Stephan Menzel
|
# (c) 2025 by Stephan Menzel
|
||||||
# Licensed under the Apache License, Version 2.0.
|
# Licensed under the Apache License, Version 2.0.
|
||||||
# See attached file LICENSE for full details
|
# See attached file LICENSE for full details
|
||||||
|
import shutil
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
from build_functions.build_utils import print_banner
|
from build_functions.build_utils import print_banner
|
||||||
|
|
@ -24,4 +24,10 @@ def build_recycle(prefix: Path | str, sbom: dict):
|
||||||
src_dir = clone_git_tag(package_info, recursive=False)
|
src_dir = clone_git_tag(package_info, recursive=False)
|
||||||
install_dir = cmake_build_install(src_dir, package_info, cmake_args=cmake_args)
|
install_dir = cmake_build_install(src_dir, package_info, cmake_args=cmake_args)
|
||||||
write_package_version_batch(package_info.version)
|
write_package_version_batch(package_info.version)
|
||||||
|
|
||||||
|
# Recycle doesn't have a CMake package file, even though a PR to that effect has been
|
||||||
|
# open for 3 years: https://github.com/steinwurf/recycle/pull/36
|
||||||
|
# I will use the same workaround as with asio and fake one myself
|
||||||
|
shutil.copy(Path(__file__).parent.parent / "patches" / "recycle" / "recycleConfig.cmake", install_dir)
|
||||||
|
|
||||||
return install_dir
|
return install_dir
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,48 @@
|
||||||
|
# (c) 2025 by Stephan Menzel
|
||||||
|
# Licensed under the Apache License, Version 2.0.
|
||||||
|
# See attached file LICENSE for full details
|
||||||
|
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
|
from build_functions.build_utils import print_banner
|
||||||
|
from common.azure import write_package_version_batch
|
||||||
|
from common.cmake import cmake_build_install
|
||||||
|
from common.git_helpers import clone_git_tag
|
||||||
|
from common.settings import temporarily_set_shared
|
||||||
|
from package.package_info import get_package_info
|
||||||
|
|
||||||
|
def build_udpcap(prefix: Path | str, sbom: dict):
|
||||||
|
|
||||||
|
print_banner("Building udpcap")
|
||||||
|
|
||||||
|
package_info = get_package_info("udpcap")
|
||||||
|
package_info.add_to_sbom(sbom)
|
||||||
|
|
||||||
|
# this is a can of worms here...
|
||||||
|
#
|
||||||
|
# This depends on pcapplusplus which in turn depends on npcap.
|
||||||
|
# But npcap can only be built with spectre mitigated VS SDK libraries,
|
||||||
|
# which I don't want to impose on the user. I will
|
||||||
|
# leave this out until I know for sure what this is needed for
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
asio_install_path = package_info.dependency_path("asio")
|
||||||
|
pcapplusplus_install_path = package_info.dependency_path("pcapplusplus")
|
||||||
|
|
||||||
|
cmake_args = [
|
||||||
|
("UDPCAP_BUILD_SAMPLES:BOOL", "OFF"),
|
||||||
|
("UDPCAP_BUILD_TESTS:BOOL", "OFF"),
|
||||||
|
("UDPCAP_THIRDPARTY_ENABLED:BOOL", "ON"),
|
||||||
|
("UDPCAP_THIRDPARTY_USE_BUILTIN_NPCAP:BOOL", "OFF"),
|
||||||
|
("UDPCAP_THIRDPARTY_USE_BUILTIN_PCAPPLUSPLUS:BOOL", "OFF"),
|
||||||
|
("UDPCAP_THIRDPARTY_USE_BUILTIN_ASIO:BOOL", "OFF"),
|
||||||
|
("UDPCAP_THIRDPARTY_USE_BUILTIN_GTEST:BOOL", "OFF"),
|
||||||
|
|
||||||
|
("asio_DIR:PATH", str(asio_install_path)),
|
||||||
|
("asio_INCLUDE_DIR:PATH", str(asio_install_path / "include")),
|
||||||
|
]
|
||||||
|
src_dir = clone_git_tag(package_info, recursive=False)
|
||||||
|
install_dir = cmake_build_install(src_dir, package_info, cmake_args=cmake_args)
|
||||||
|
write_package_version_batch(package_info.version)
|
||||||
|
return install_dir
|
||||||
|
|
@ -50,3 +50,6 @@ def cmake_build_install(local_directory, package_info: PackageInfo, cmake_args:
|
||||||
|
|
||||||
return install_prefix
|
return install_prefix
|
||||||
|
|
||||||
|
def assemble_prefix_path(packages: list[PackageInfo]) -> str:
|
||||||
|
paths = [str(pkg.install_location()) for pkg in packages]
|
||||||
|
return ";".join(paths)
|
||||||
|
|
@ -74,7 +74,6 @@ def switch_shared_libs(shared: bool) -> None:
|
||||||
if k == "BUILD_SHARED_LIBS:BOOL":
|
if k == "BUILD_SHARED_LIBS:BOOL":
|
||||||
cmake_global_flags[i] = ("BUILD_SHARED_LIBS:BOOL", "ON") if shared else ("BUILD_SHARED_LIBS:BOOL", "OFF")
|
cmake_global_flags[i] = ("BUILD_SHARED_LIBS:BOOL", "ON") if shared else ("BUILD_SHARED_LIBS:BOOL", "OFF")
|
||||||
|
|
||||||
|
|
||||||
@contextmanager
|
@contextmanager
|
||||||
def temporarily_set_shared():
|
def temporarily_set_shared():
|
||||||
"""Create a scope in which we build dynamic"""
|
"""Create a scope in which we build dynamic"""
|
||||||
|
|
|
||||||
|
|
@ -42,6 +42,14 @@ def sanitize_tag(git_tag: str) -> str:
|
||||||
return git_tag[5:]
|
return git_tag[5:]
|
||||||
|
|
||||||
if x := re.match(R"^v(\d+[._]\d+[._]\d+)$", git_tag):
|
if x := re.match(R"^v(\d+[._]\d+[._]\d+)$", git_tag):
|
||||||
|
return x.group(1).replace("_", ".")
|
||||||
|
|
||||||
|
# pcapplusplus uses this
|
||||||
|
if x := re.match(R"^v(\d+[.]\d+)$", git_tag):
|
||||||
|
return f"{x.group(1)}.0"
|
||||||
|
|
||||||
|
# temporarily for the ecal RC. This should be stable by the time we finish this
|
||||||
|
if x := re.match(R"^v(\d+\.\d+\.\d+)-rc\.\d$", git_tag):
|
||||||
return x.group(1)
|
return x.group(1)
|
||||||
|
|
||||||
return git_tag
|
return git_tag
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
# (c) 2025 by Stephan Menzel
|
# (c) 2025 by Stephan Menzel
|
||||||
# Licensed under the Apache License, Version 2.0.
|
# Licensed under the Apache License, Version 2.0.
|
||||||
# See attached file LICENSE for full details
|
# See attached file LICENSE for full details
|
||||||
|
from typing import Self
|
||||||
import json
|
import json
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
|
|
@ -58,6 +58,12 @@ class PackageInfo:
|
||||||
self.license_name = pckdict["license_name"]
|
self.license_name = pckdict["license_name"]
|
||||||
self.license_url = pckdict["license_url"]
|
self.license_url = pckdict["license_url"]
|
||||||
|
|
||||||
|
def dependency(self, package_name: str) -> Self:
|
||||||
|
"""Give the path underneath which the package, according to its version, is installed"""
|
||||||
|
if package_name not in self.dependencies:
|
||||||
|
raise DependencyInfoError(f"Cannot find dependency {package_name} in {self.name}.")
|
||||||
|
return self.dependencies[package_name]
|
||||||
|
|
||||||
def dependency_path(self, package_name: str) -> Path:
|
def dependency_path(self, package_name: str) -> Path:
|
||||||
"""Give the path underneath which the package, according to its version, is installed"""
|
"""Give the path underneath which the package, according to its version, is installed"""
|
||||||
if package_name not in self.dependencies:
|
if package_name not in self.dependencies:
|
||||||
|
|
|
||||||
138
packages.json
138
packages.json
|
|
@ -42,6 +42,54 @@
|
||||||
"license_name": "CURL license",
|
"license_name": "CURL license",
|
||||||
"license_url": "https://github.com/curl/curl?tab=License-1-ov-file#readme"
|
"license_url": "https://github.com/curl/curl?tab=License-1-ov-file#readme"
|
||||||
},
|
},
|
||||||
|
"ecal": {
|
||||||
|
"repo": "https://github.com/eclipse-ecal/ecal.git",
|
||||||
|
"tag": "v6.0.0-rc.3",
|
||||||
|
"version": "6.0.0",
|
||||||
|
"depends": [
|
||||||
|
"abseil-cpp",
|
||||||
|
"asio",
|
||||||
|
"curl",
|
||||||
|
"ecaludp",
|
||||||
|
"fineftp",
|
||||||
|
"ftxui",
|
||||||
|
"hdf5",
|
||||||
|
"protobuf",
|
||||||
|
"qt5",
|
||||||
|
"qwt",
|
||||||
|
"recycle",
|
||||||
|
"spdlog",
|
||||||
|
"tclap",
|
||||||
|
"tcp_pubsub",
|
||||||
|
"termcolor",
|
||||||
|
"tinyxml2",
|
||||||
|
"yaml-cpp",
|
||||||
|
"zlib"
|
||||||
|
],
|
||||||
|
"description": "eCAL - enhanced Communication Abstraction Layer.",
|
||||||
|
"license_id": "Apache-2.0",
|
||||||
|
"license_url": "https://github.com/eclipse-ecal/ecal/blob/master/LICENSE.txt"
|
||||||
|
},
|
||||||
|
"ecaludp": {
|
||||||
|
"repo": "https://github.com/eclipse-ecal/ecaludp.git",
|
||||||
|
"tag": "v0.1.2",
|
||||||
|
"version": "0.1.2",
|
||||||
|
"depends": [
|
||||||
|
"asio",
|
||||||
|
"recycle"
|
||||||
|
],
|
||||||
|
"description": "Ecal UDP. That's the actual description.",
|
||||||
|
"license_id": "Apache-2.0",
|
||||||
|
"license_url": "https://github.com/eclipse-ecal/ecaludp/blob/main/LICENSE"
|
||||||
|
},
|
||||||
|
"eigen": {
|
||||||
|
"repo": "https://gitlab.com/libeigen/eigen.git",
|
||||||
|
"tag": "3.4.0",
|
||||||
|
"version": "3.4.0",
|
||||||
|
"description": "Eigen is a C++ template library for linear algebra",
|
||||||
|
"license_id": "MPL-2.0",
|
||||||
|
"license_url": "https://www.mozilla.org/en-US/MPL/2.0/"
|
||||||
|
},
|
||||||
"fineftp": {
|
"fineftp": {
|
||||||
"repo": "https://github.com/eclipse-ecal/fineftp-server.git",
|
"repo": "https://github.com/eclipse-ecal/fineftp-server.git",
|
||||||
"tag": "v1.5.1",
|
"tag": "v1.5.1",
|
||||||
|
|
@ -53,6 +101,14 @@
|
||||||
"license_id": "MIT",
|
"license_id": "MIT",
|
||||||
"license_url": "https://github.com/eclipse-ecal/fineftp-server/blob/master/LICENSE"
|
"license_url": "https://github.com/eclipse-ecal/fineftp-server/blob/master/LICENSE"
|
||||||
},
|
},
|
||||||
|
"ftxui": {
|
||||||
|
"repo": "https://github.com/ArthurSonzogni/FTXUI.git",
|
||||||
|
"tag": "v6.1.9",
|
||||||
|
"version": "6.1.9",
|
||||||
|
"description": "C++ Functional Terminal User Interface",
|
||||||
|
"license_id": "MIT",
|
||||||
|
"license_url": "https://github.com/ArthurSonzogni/FTXUI/blob/main/LICENSE"
|
||||||
|
},
|
||||||
"glog": {
|
"glog": {
|
||||||
"repo": "https://github.com/google/glog.git",
|
"repo": "https://github.com/google/glog.git",
|
||||||
"tag": "v0.6.0",
|
"tag": "v0.6.0",
|
||||||
|
|
@ -82,8 +138,8 @@
|
||||||
},
|
},
|
||||||
"protobuf": {
|
"protobuf": {
|
||||||
"repo": "https://github.com/protocolbuffers/protobuf.git",
|
"repo": "https://github.com/protocolbuffers/protobuf.git",
|
||||||
"tag": "v27.2",
|
"tag": "v5.29.5",
|
||||||
"version": "27.2.0",
|
"version": "5.29.5",
|
||||||
"depends": [
|
"depends": [
|
||||||
"zlib",
|
"zlib",
|
||||||
"abseil-cpp"
|
"abseil-cpp"
|
||||||
|
|
@ -92,14 +148,6 @@
|
||||||
"license_name": "Proprietary Google License",
|
"license_name": "Proprietary Google License",
|
||||||
"license_url": "https://github.com/protocolbuffers/protobuf/blob/main/LICENSE"
|
"license_url": "https://github.com/protocolbuffers/protobuf/blob/main/LICENSE"
|
||||||
},
|
},
|
||||||
"eigen": {
|
|
||||||
"repo": "https://gitlab.com/libeigen/eigen.git",
|
|
||||||
"tag": "3.4.0",
|
|
||||||
"version": "3.4.0",
|
|
||||||
"description": "Eigen is a C++ template library for linear algebra",
|
|
||||||
"license_id": "MPL-2.0",
|
|
||||||
"license_url": "https://www.mozilla.org/en-US/MPL/2.0/"
|
|
||||||
},
|
|
||||||
"tclap": {
|
"tclap": {
|
||||||
"repo": "https://github.com/xguerin/tclap.git",
|
"repo": "https://github.com/xguerin/tclap.git",
|
||||||
"tag": "v1.2.5",
|
"tag": "v1.2.5",
|
||||||
|
|
@ -163,6 +211,25 @@
|
||||||
"license_name": "BSD-style",
|
"license_name": "BSD-style",
|
||||||
"license_url": "https://github.com/libjpeg-turbo/libjpeg-turbo/blob/main/LICENSE.md"
|
"license_url": "https://github.com/libjpeg-turbo/libjpeg-turbo/blob/main/LICENSE.md"
|
||||||
},
|
},
|
||||||
|
"npcap": {
|
||||||
|
"repo": "https://github.com/nmap/npcap.git",
|
||||||
|
"tag": "v1.82",
|
||||||
|
"version": "1.82.0",
|
||||||
|
"description": "Nmap Project's Windows packet capture and transmission library",
|
||||||
|
"license_name": "proprietary",
|
||||||
|
"license_url": "https://github.com/nmap/npcap/blob/master/LICENSE"
|
||||||
|
},
|
||||||
|
"matplotplusplus": {
|
||||||
|
"repo": "https://github.com/alandefreitas/matplotplusplus.git",
|
||||||
|
"tag": "v1.2.0",
|
||||||
|
"version": "1.2.0",
|
||||||
|
"depends": [
|
||||||
|
"libjpeg-turbo"
|
||||||
|
],
|
||||||
|
"description": "C++ implementation of the matplot graph plotting library",
|
||||||
|
"license_id": "MIT",
|
||||||
|
"license_url": "https://github.com/alandefreitas/matplotplusplus/blob/master/LICENSE"
|
||||||
|
},
|
||||||
"onetbb": {
|
"onetbb": {
|
||||||
"repo": "https://github.com/uxlfoundation/oneTBB.git",
|
"repo": "https://github.com/uxlfoundation/oneTBB.git",
|
||||||
"tag": "v2022.1.0",
|
"tag": "v2022.1.0",
|
||||||
|
|
@ -183,6 +250,17 @@
|
||||||
"license_id": "Apache-2.0",
|
"license_id": "Apache-2.0",
|
||||||
"license_url": "https://opencv.org/license/"
|
"license_url": "https://opencv.org/license/"
|
||||||
},
|
},
|
||||||
|
"openssl": {
|
||||||
|
"repo": "https://github.com/openssl/openssl.git",
|
||||||
|
"tag": "openssl-3.2.4",
|
||||||
|
"version": "3.2.4",
|
||||||
|
"depends": [
|
||||||
|
"zlib"
|
||||||
|
],
|
||||||
|
"description": "Standard encryption layer library",
|
||||||
|
"license_id": "Apache-2.0",
|
||||||
|
"license_url": "https://openssl-library.org/source/license/index.html"
|
||||||
|
},
|
||||||
"opensubdiv": {
|
"opensubdiv": {
|
||||||
"repo": "https://github.com/PixarAnimationStudios/OpenSubdiv.git",
|
"repo": "https://github.com/PixarAnimationStudios/OpenSubdiv.git",
|
||||||
"tag": "v3_6_0",
|
"tag": "v3_6_0",
|
||||||
|
|
@ -210,27 +288,13 @@
|
||||||
"license_id": "Apache-2.0",
|
"license_id": "Apache-2.0",
|
||||||
"license_url": "https://github.com/PixarAnimationStudios/OpenUSD?tab=License-1-ov-file#readme"
|
"license_url": "https://github.com/PixarAnimationStudios/OpenUSD?tab=License-1-ov-file#readme"
|
||||||
},
|
},
|
||||||
"matplotplusplus": {
|
"pcapplusplus": {
|
||||||
"repo": "https://github.com/alandefreitas/matplotplusplus.git",
|
"repo": "https://github.com/seladb/PcapPlusPlus.git",
|
||||||
"tag": "v1.2.0",
|
"tag": "v25.05",
|
||||||
"version": "1.2.0",
|
"version": "25.5.0",
|
||||||
"depends": [
|
"description": "library for capturing, parsing and crafting of network packets",
|
||||||
"libjpeg-turbo"
|
"license_name": "proprietary",
|
||||||
],
|
"license_url": "https://github.com/seladb/PcapPlusPlus/blob/master/LICENSE"
|
||||||
"description": "C++ implementation of the matplot graph plotting library",
|
|
||||||
"license_id": "MIT",
|
|
||||||
"license_url": "https://github.com/alandefreitas/matplotplusplus/blob/master/LICENSE"
|
|
||||||
},
|
|
||||||
"openssl": {
|
|
||||||
"repo": "https://github.com/openssl/openssl.git",
|
|
||||||
"tag": "openssl-3.2.4",
|
|
||||||
"version": "3.2.4",
|
|
||||||
"depends": [
|
|
||||||
"zlib"
|
|
||||||
],
|
|
||||||
"description": "Standard encryption layer library",
|
|
||||||
"license_id": "Apache-2.0",
|
|
||||||
"license_url": "https://openssl-library.org/source/license/index.html"
|
|
||||||
},
|
},
|
||||||
"re2": {
|
"re2": {
|
||||||
"repo": "https://github.com/google/re2.git",
|
"repo": "https://github.com/google/re2.git",
|
||||||
|
|
@ -322,6 +386,18 @@
|
||||||
"license_id": "Zlib",
|
"license_id": "Zlib",
|
||||||
"license_url": "https://github.com/leethomason/tinyxml2/blob/master/LICENSE.txt"
|
"license_url": "https://github.com/leethomason/tinyxml2/blob/master/LICENSE.txt"
|
||||||
},
|
},
|
||||||
|
"udpcap": {
|
||||||
|
"repo": "https://github.com/eclipse-ecal/udpcap.git",
|
||||||
|
"tag": "v2.0.4",
|
||||||
|
"version": "2.0.4",
|
||||||
|
"depends": [
|
||||||
|
"asio",
|
||||||
|
"pcapplusplus"
|
||||||
|
],
|
||||||
|
"description": "Npcap-based UDP socket emulation library for C++",
|
||||||
|
"license_id": "Apache-2.0",
|
||||||
|
"license_url": "https://github.com/eclipse-ecal/udpcap/blob/master/LICENSE"
|
||||||
|
},
|
||||||
"yaml-cpp": {
|
"yaml-cpp": {
|
||||||
"repo": "https://github.com/jbeder/yaml-cpp.git",
|
"repo": "https://github.com/jbeder/yaml-cpp.git",
|
||||||
"tag": "0.8.0",
|
"tag": "0.8.0",
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,8 @@
|
||||||
add_library(asio INTERFACE EXCLUDE_FROM_ALL)
|
add_library(asio INTERFACE)
|
||||||
target_include_directories(asio INTERFACE
|
target_include_directories(asio INTERFACE
|
||||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/include>
|
$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/include>
|
||||||
)
|
)
|
||||||
target_compile_definitions(asio INTERFACE ASIO_STANDALONE)
|
target_compile_definitions(asio INTERFACE ASIO_STANDALONE)
|
||||||
add_library(asio::asio ALIAS asio)
|
add_library(asio::asio ALIAS asio)
|
||||||
|
|
||||||
|
install(TARGETS asio EXPORT asioTargets)
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,120 @@
|
||||||
|
diff --git a/app/app_pb/CMakeLists.txt b/app/app_pb/CMakeLists.txt
|
||||||
|
index aba4a91..5775cee 100644
|
||||||
|
--- a/app/app_pb/CMakeLists.txt
|
||||||
|
+++ b/app/app_pb/CMakeLists.txt
|
||||||
|
@@ -18,6 +18,7 @@
|
||||||
|
|
||||||
|
project(app_pb)
|
||||||
|
|
||||||
|
+find_package(absl REQUIRED)
|
||||||
|
find_package(Protobuf REQUIRED)
|
||||||
|
|
||||||
|
set(ProtoFiles
|
||||||
|
@@ -71,7 +72,13 @@ target_compile_options(${PROJECT_NAME}
|
||||||
|
|
||||||
|
set_property(TARGET ${PROJECT_NAME} PROPERTY POSITION_INDEPENDENT_CODE ON)
|
||||||
|
|
||||||
|
-target_link_libraries(${PROJECT_NAME} PUBLIC protobuf::libprotobuf)
|
||||||
|
+target_link_libraries(${PROJECT_NAME}
|
||||||
|
+ PUBLIC
|
||||||
|
+ protobuf::libprotobuf
|
||||||
|
+ absl::log
|
||||||
|
+ absl::strings
|
||||||
|
+ absl::base
|
||||||
|
+)
|
||||||
|
target_compile_features(${PROJECT_NAME} PUBLIC cxx_std_14)
|
||||||
|
|
||||||
|
ecal_install_library(${PROJECT_NAME})
|
||||||
|
diff --git a/ecal/core/src/ecal_process.cpp b/ecal/core/src/ecal_process.cpp
|
||||||
|
index cee6311..66b011c 100644
|
||||||
|
--- a/ecal/core/src/ecal_process.cpp
|
||||||
|
+++ b/ecal/core/src/ecal_process.cpp
|
||||||
|
@@ -366,16 +366,16 @@ namespace eCAL
|
||||||
|
short win_state = 0;
|
||||||
|
switch (process_mode_)
|
||||||
|
{
|
||||||
|
- case 0:
|
||||||
|
+ case eStartMode::normal:
|
||||||
|
win_state = SW_SHOW;
|
||||||
|
break;
|
||||||
|
- case 1:
|
||||||
|
+ case eStartMode::hidden:
|
||||||
|
win_state = SW_HIDE;
|
||||||
|
break;
|
||||||
|
- case 2:
|
||||||
|
+ case eStartMode::minimized:
|
||||||
|
win_state = SW_MINIMIZE;
|
||||||
|
break;
|
||||||
|
- case 3:
|
||||||
|
+ case eStartMode::maximized:
|
||||||
|
win_state = SW_MAXIMIZE;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
diff --git a/ecal/core_pb/CMakeLists.txt b/ecal/core_pb/CMakeLists.txt
|
||||||
|
index 892e6ea..852a5b1 100644
|
||||||
|
--- a/ecal/core_pb/CMakeLists.txt
|
||||||
|
+++ b/ecal/core_pb/CMakeLists.txt
|
||||||
|
@@ -18,6 +18,7 @@
|
||||||
|
|
||||||
|
project(core_pb)
|
||||||
|
|
||||||
|
+find_package(absl REQUIRED)
|
||||||
|
find_package(Protobuf REQUIRED)
|
||||||
|
|
||||||
|
set(ProtoFiles
|
||||||
|
@@ -68,7 +69,14 @@ target_compile_options(${PROJECT_NAME}
|
||||||
|
|
||||||
|
set_property(TARGET ${PROJECT_NAME} PROPERTY POSITION_INDEPENDENT_CODE ON)
|
||||||
|
|
||||||
|
-target_link_libraries(${PROJECT_NAME} PUBLIC protobuf::libprotobuf)
|
||||||
|
+target_link_libraries(${PROJECT_NAME}
|
||||||
|
+ PUBLIC
|
||||||
|
+ protobuf::libprotobuf
|
||||||
|
+ absl::log
|
||||||
|
+ absl::strings
|
||||||
|
+ absl::base
|
||||||
|
+)
|
||||||
|
+
|
||||||
|
target_compile_features(${PROJECT_NAME} PUBLIC cxx_std_14)
|
||||||
|
|
||||||
|
ecal_install_library(${PROJECT_NAME})
|
||||||
|
diff --git a/serialization/protobuf/protobuf/CMakeLists.txt b/serialization/protobuf/protobuf/CMakeLists.txt
|
||||||
|
index 5264fad..2924162 100644
|
||||||
|
--- a/serialization/protobuf/protobuf/CMakeLists.txt
|
||||||
|
+++ b/serialization/protobuf/protobuf/CMakeLists.txt
|
||||||
|
@@ -20,6 +20,7 @@
|
||||||
|
# Protobuf base functionality
|
||||||
|
##########################
|
||||||
|
|
||||||
|
+find_package(absl REQUIRED)
|
||||||
|
find_package(Protobuf REQUIRED)
|
||||||
|
ecal_add_library(protobuf_base)
|
||||||
|
add_library(eCAL::protobuf_base ALIAS protobuf_base)
|
||||||
|
@@ -45,7 +46,13 @@ target_sources(protobuf_base
|
||||||
|
src/ecal_proto_visitor.cpp
|
||||||
|
)
|
||||||
|
|
||||||
|
-target_link_libraries(protobuf_base PUBLIC protobuf::libprotobuf)
|
||||||
|
+target_link_libraries(protobuf_base
|
||||||
|
+ PUBLIC
|
||||||
|
+ protobuf::libprotobuf
|
||||||
|
+ absl::log
|
||||||
|
+ absl::strings
|
||||||
|
+ absl::base
|
||||||
|
+)
|
||||||
|
|
||||||
|
target_compile_features(protobuf_base PUBLIC cxx_std_14)
|
||||||
|
|
||||||
|
diff --git a/thirdparty/cmakefunctions/cmake_functions/qt/qt_windeployqt.cmake b/thirdparty/cmakefunctions/cmake_functions/qt/qt_windeployqt.cmake
|
||||||
|
index 7e7ff0f..b429cf8 100644
|
||||||
|
--- a/thirdparty/cmakefunctions/cmake_functions/qt/qt_windeployqt.cmake
|
||||||
|
+++ b/thirdparty/cmakefunctions/cmake_functions/qt/qt_windeployqt.cmake
|
||||||
|
@@ -17,7 +17,7 @@
|
||||||
|
# ========================= eCAL LICENSE =================================
|
||||||
|
|
||||||
|
|
||||||
|
-set (qt_windeployqt_cmake_path ${CMAKE_CURRENT_LIST_DIR} PARENT_SCOPE)
|
||||||
|
+set (qt_windeployqt_cmake_path ${CMAKE_CURRENT_LIST_DIR})
|
||||||
|
|
||||||
|
# Create convenient function to run windeployqt
|
||||||
|
function(qt_add_windeployqt_postbuild arguments)
|
||||||
|
|
@ -0,0 +1,17 @@
|
||||||
|
diff --git a/ecaludp/CMakeLists.txt b/ecaludp/CMakeLists.txt
|
||||||
|
index c6fc47a..34b96b3 100644
|
||||||
|
--- a/ecaludp/CMakeLists.txt
|
||||||
|
+++ b/ecaludp/CMakeLists.txt
|
||||||
|
@@ -94,11 +94,10 @@ generate_export_header(${PROJECT_NAME}
|
||||||
|
add_library (ecaludp::ecaludp ALIAS ${PROJECT_NAME})
|
||||||
|
|
||||||
|
target_link_libraries(${PROJECT_NAME}
|
||||||
|
- PUBLIC
|
||||||
|
- asio::asio
|
||||||
|
PRIVATE
|
||||||
|
# Link header-only libs (recycle) as described in this workaround:
|
||||||
|
# https://gitlab.kitware.com/cmake/cmake/-/issues/15415#note_633938
|
||||||
|
+ $<BUILD_INTERFACE:asio::asio>
|
||||||
|
$<BUILD_INTERFACE:steinwurf::recycle>
|
||||||
|
$<$<BOOL:${WIN32}>:ws2_32>
|
||||||
|
$<$<BOOL:${WIN32}>:wsock32>
|
||||||
|
|
@ -0,0 +1,13 @@
|
||||||
|
diff --git a/thirdparty/cmakefunctions/cmake_functions/qt/qt_windeployqt.cmake b/thirdparty/cmakefunctions/cmake_functions/qt/qt_windeployqt.cmake
|
||||||
|
index 7e7ff0f..b429cf8 100644
|
||||||
|
--- a/thirdparty/cmakefunctions/cmake_functions/qt/qt_windeployqt.cmake
|
||||||
|
+++ b/thirdparty/cmakefunctions/cmake_functions/qt/qt_windeployqt.cmake
|
||||||
|
@@ -17,7 +17,7 @@
|
||||||
|
# ========================= eCAL LICENSE =================================
|
||||||
|
|
||||||
|
|
||||||
|
-set (qt_windeployqt_cmake_path ${CMAKE_CURRENT_LIST_DIR} PARENT_SCOPE)
|
||||||
|
+set (qt_windeployqt_cmake_path ${CMAKE_CURRENT_LIST_DIR})
|
||||||
|
|
||||||
|
# Create convenient function to run windeployqt
|
||||||
|
function(qt_add_windeployqt_postbuild arguments)
|
||||||
|
|
@ -0,0 +1,5 @@
|
||||||
|
add_library(recycle INTERFACE EXCLUDE_FROM_ALL)
|
||||||
|
target_include_directories(recycle INTERFACE
|
||||||
|
$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/include>
|
||||||
|
)
|
||||||
|
add_library(steinwurf::recycle ALIAS recycle)
|
||||||
|
|
@ -1,2 +0,0 @@
|
||||||
echo ##vso[task.setvariable variable=installed_version]3.6.0
|
|
||||||
echo ##vso[task.setvariable variable=out_installed_version;isOutput=true]3.6.0
|
|
||||||
Loading…
Reference in New Issue