From 8cddfc07b8d5f6e47aaafda882e9f3b2b9612834 Mon Sep 17 00:00:00 2001 From: Marius Elvert Date: Fri, 16 Dec 2016 15:19:54 +0100 Subject: [PATCH 1/2] Adapted ConfigurePaths to the version used in libuca --- cmake/ConfigurePaths.cmake | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/cmake/ConfigurePaths.cmake b/cmake/ConfigurePaths.cmake index df9c03c..d5449f4 100644 --- a/cmake/ConfigurePaths.cmake +++ b/cmake/ConfigurePaths.cmake @@ -75,7 +75,11 @@ function(configure_paths _prefix) _set_var("${_prefix}" "SYSCONFDIR" "${SYSCONFDIR}" "${${_prefix}_PREFIX}/etc" "read-only single-machine data") _set_var("${_prefix}" "LOCALSTATEDIR" "${LOCALSTATEDIR}" "${${_prefix}_PREFIX}/var" "modifiable single-machine data") _set_var("${_prefix}" "BINDIR" "${BINDIR}" "${${_prefix}_EPREFIX}/bin" "user executables") +if(WIN32) + _set_var("${_prefix}" "LIBDIR" "${LIBDIR}" "${${_prefix}_EPREFIX}/bin" "object code libraries") +else() _set_var("${_prefix}" "LIBDIR" "${LIBDIR}" "${${_prefix}_EPREFIX}/lib" "object code libraries") +endif() _set_var("${_prefix}" "INCLUDEDIR" "${INCLUDEDIR}" "${${_prefix}_PREFIX}/include" "C header files") _set_var("${_prefix}" "PKGCONFIGDIR" "${PKGCONFIGDIR}" "${${_prefix}_LIBDIR}/pkgconfig" "pkg-config files") _set_var("${_prefix}" "TYPELIBDIR" "${TYPELIBDIR}" "${${_prefix}_LIBDIR}/girepository-1.0" "GObject run-time introspection data") From 72c54aafaa5f0d07b4250ce50b770d5fa1f9df1c Mon Sep 17 00:00:00 2001 From: Marius Elvert Date: Wed, 28 Apr 2021 16:41:03 +0200 Subject: [PATCH 2/2] Build using conan --- CMakeLists.txt | 34 +++++++++++++--------------------- conanfile.py | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+), 21 deletions(-) create mode 100644 conanfile.py diff --git a/CMakeLists.txt b/CMakeLists.txt index 45120e4..fb8caca 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,29 +1,23 @@ -cmake_minimum_required(VERSION 2.6) +cmake_minimum_required(VERSION 3.10) +project(ucanet C) -if (POLICY CMP0053) -cmake_policy(SET CMP0053 OLD) -endif () +if (NOT EXISTS ${CMAKE_BINARY_DIR}/conanbuildinfo.cmake) + message(FATAL_ERROR "Please run 'conan install' first!") +endif() +include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake) -if (POLICY CMP0054) - cmake_policy(SET CMP0054 OLD) -endif () - -project(ucanet C) +conan_basic_setup(TARGETS) list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake") -find_package(PkgConfig) - -include(FindPackageHandleStandardArgs) -include(PkgConfigVars) include(GNUInstallDirs) -add_definitions("-std=c99 -Wall -fPIC") +if (GNU) + add_definitions("-std=c99 -Wall -fPIC") +endif() + add_definitions(-DG_LOG_DOMAIN="Uca-Net") -pkg_check_modules(GIO gio-2.0>=2.22 REQUIRED) -pkg_check_modules(UCA libuca>=2.1.0 REQUIRED) -pkg_check_variable(libuca plugindir) set(UCA_NET_DEFAULT_PORT 8989) @@ -49,8 +43,7 @@ link_directories( add_library(ucanet SHARED uca-net-camera.c) target_link_libraries(ucanet - ${UCA_LIBRARIES} - ${GIO_LIBRARIES}) + PUBLIC CONAN_PKG::libuca) install(TARGETS ucanet LIBRARY DESTINATION ${LIBUCA_PLUGINDIR} @@ -60,8 +53,7 @@ install(TARGETS ucanet add_executable(ucad ucad.c) target_link_libraries(ucad - ${UCA_LIBRARIES} - ${GIO_LIBRARIES}) + PUBLIC CONAN_PKG::libuca) install(TARGETS ucad RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} diff --git a/conanfile.py b/conanfile.py new file mode 100644 index 0000000..fc738ec --- /dev/null +++ b/conanfile.py @@ -0,0 +1,32 @@ +from conans import ConanFile, CMake, tools + + +class UcaConan(ConanFile): + name = "uca-net" + version = "9906e95" + license = "MIT" + author = "Marius Elvert marius.elvert@softwareschneiderei.de" + url = "https://github.com/ufo-kit/libuca" + description = "TCP-based network bridge for libuca." + topics = ("utilities",) + settings = "os", "compiler", "build_type", "arch" + options = {"shared": [True, False]} + default_options = "shared=False" + generators = "cmake" + exports_sources = "src/*", "include/*", "test/*", "bin/*", "CMakeLists.txt", "package.sh.in" + requires = "libuca/2.3.0", + + def _configured_cmake(self): + cmake = CMake(self) + cmake.configure(source_folder=".") + return cmake + + def build(self): + self._configured_cmake().build() + + def package(self): + self._configured_cmake().install() + + def imports(self): + self.copy("*.dll", "bin", "bin") + self.copy("*.dylib", "lib", "lib")