Skip to content
Snippets Groups Projects

Resolve "EXTERN: Adapt to Conan 2"

Merged Joscha Schmiedt requested to merge f-73-extern-adapt-to-conan-2-0 into dev
1 file
+ 177
160
Compare changes
  • Side-by-side
  • Inline
+ 177
160
@@ -40,7 +40,7 @@ set(CMAKE_CXX_EXTENSIONS OFF)
@@ -40,7 +40,7 @@ set(CMAKE_CXX_EXTENSIONS OFF)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
set(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake" ${CMAKE_MODULE_PATH})
# set(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake" ${CMAKE_MODULE_PATH})
IF (WIN32)
IF (WIN32)
set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
@@ -55,20 +55,20 @@ ENDIF()
@@ -55,20 +55,20 @@ ENDIF()
### DEPENDENCY MANAGEMENT with CONAN
### DEPENDENCY MANAGEMENT with CONAN
###########################################
###########################################
message(STATUS "Build directory ${CMAKE_BINARY_DIR}")
message(STATUS "Build directory ${CMAKE_BINARY_DIR}")
include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
# include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
conan_basic_setup()
# conan_basic_setup()
# fix grpc - remove unsecure (no-op ssl implementations)
# # fix grpc - remove unsecure (no-op ssl implementations)
string(REGEX REPLACE "grpc\\+?\\+?_unsecure" "" CONAN_LIBS_GRPC
# string(REGEX REPLACE "grpc\\+?\\+?_unsecure" "" CONAN_LIBS_GRPC
"${CONAN_LIBS_GRPC}")
# "${CONAN_LIBS_GRPC}")
string(REGEX REPLACE "grpc\\+?\\+?_unsecure" "" CONAN_PKG_LIBS_GRPC
# string(REGEX REPLACE "grpc\\+?\\+?_unsecure" "" CONAN_PKG_LIBS_GRPC
"${CONAN_PKG_LIBS_GRPC}")
# "${CONAN_PKG_LIBS_GRPC}")
string(REGEX REPLACE "grpc\\+?\\+?_unsecure" "" CONAN_LIBS
# string(REGEX REPLACE "grpc\\+?\\+?_unsecure" "" CONAN_LIBS
"${CONAN_LIBS}")
# "${CONAN_LIBS}")
string(REGEX REPLACE "grpc\\+?\\+?_unsecure" "" CONAN_PKG_LIBS
# string(REGEX REPLACE "grpc\\+?\\+?_unsecure" "" CONAN_PKG_LIBS
"${CONAN_PKG_LIBS}")
# "${CONAN_PKG_LIBS}")
message(STATUS "CONAN_LIBS: ${CONAN_LIBS}")
# message(STATUS "CONAN_LIBS: ${CONAN_LIBS}")
###########################################
###########################################
### GENERAL SETUP of SOURCES
### GENERAL SETUP of SOURCES
@@ -157,85 +157,102 @@ add_custom_command(
@@ -157,85 +157,102 @@ add_custom_command(
### * ccaosdbcli - A plain C test client.
### * ccaosdbcli - A plain C test client.
###############################################################################
###############################################################################
if("${CMAKE_BUILD_TYPE}" MATCHES "Debug")
find_package(gRPC)
add_library(caosdb_grpc SHARED ${GRPC_GENERATED})
find_package(protobuf)
add_library(caosdb SHARED ${libcaosdb_INCL} ${libcaosdb_SRC})
find_package(Boost)
target_link_libraries(caosdb caosdb_grpc)
find_package(GTest)
set(LIBCAOSDB caosdb caosdb_grpc)
target_include_directories(caosdb_grpc PUBLIC
$<BUILD_INTERFACE:${libcaosdb_SOURCE_DIR}/include>
$<BUILD_INTERFACE:${libcaosdb_BINARY_DIR}/include>
$<INSTALL_INTERFACE:include>
)
target_include_directories(caosdb_grpc SYSTEM PUBLIC
${CONAN_INCLUDE_DIRS}
)
else()
add_library(caosdb
SHARED ${libcaosdb_INCL} ${libcaosdb_SRC} ${GRPC_GENERATED})
set(LIBCAOSDB caosdb)
endif()
target_link_libraries(caosdb
${CONAN_LIBS}
stdc++fs
)
target_include_directories(caosdb PUBLIC
$<BUILD_INTERFACE:${libcaosdb_SOURCE_DIR}/include>
$<BUILD_INTERFACE:${libcaosdb_BINARY_DIR}/include>
$<BUILD_INTERFACE:${libcaosdb_SOURCE_DIR}/src>
$<INSTALL_INTERFACE:include>
)
target_include_directories(caosdb SYSTEM PUBLIC
${CONAN_INCLUDE_DIRS}
)
add_library(ccaosdb SHARED src/ccaosdb.cpp)
target_link_libraries(ccaosdb
${CONAN_LIBS}
${LIBCAOSDB}
stdc++fs
)
target_include_directories(ccaosdb PUBLIC
$<BUILD_INTERFACE:${libcaosdb_SOURCE_DIR}/include>
$<BUILD_INTERFACE:${libcaosdb_BINARY_DIR}/include>
$<INSTALL_INTERFACE:include>
)
target_include_directories(ccaosdb SYSTEM PUBLIC
${CONAN_INCLUDE_DIRS}
)
add_executable(ccaosdbcli EXCLUDE_FROM_ALL src/ccaosdbcli.c)
add_library(caosdb
target_include_directories(ccaosdbcli PUBLIC
SHARED ${libcaosdb_INCL} ${libcaosdb_SRC} ${GRPC_GENERATED})
$<BUILD_INTERFACE:${libcaosdb_SOURCE_DIR}/include>
set(LIBCAOSDB caosdb)
$<BUILD_INTERFACE:${libcaosdb_BINARY_DIR}/include>
$<INSTALL_INTERFACE:include>
)
target_include_directories(ccaosdbcli SYSTEM PUBLIC
${CONAN_INCLUDE_DIRS}
)
target_link_libraries(ccaosdbcli
${CONAN_LIBS}
${LIBCAOSDB}
ccaosdb
)
add_executable(cxxcaosdbcli EXCLUDE_FROM_ALL src/cxxcaosdbcli.cpp)
target_link_libraries(caosdb grpc::grpc protobuf::protobuf boost::boost gtest::gtest)
target_include_directories(cxxcaosdbcli PUBLIC
target_link_libraries(caosdb grpc::grpc protobuf::protobuf)
$<BUILD_INTERFACE:${libcaosdb_SOURCE_DIR}/include>
target_include_directories(caosdb PUBLIC
$<BUILD_INTERFACE:${libcaosdb_BINARY_DIR}/include>
$<BUILD_INTERFACE:${libcaosdb_SOURCE_DIR}/include>
$<INSTALL_INTERFACE:include>
$<BUILD_INTERFACE:${libcaosdb_BINARY_DIR}/include>
)
$<BUILD_INTERFACE:${libcaosdb_SOURCE_DIR}/src>
target_include_directories(cxxcaosdbcli SYSTEM PUBLIC
$<INSTALL_INTERFACE:include>
${CONAN_INCLUDE_DIRS}
)
)
# if("${CMAKE_BUILD_TYPE}" MATCHES "Debug")
target_link_libraries(cxxcaosdbcli
# add_library(caosdb_grpc SHARED ${GRPC_GENERATED})
${LIBCAOSDB}
# add_library(caosdb SHARED ${libcaosdb_INCL} ${libcaosdb_SRC})
${CONAN_LIBS}
# target_link_libraries(caosdb caosdb_grpc)
)
# set(LIBCAOSDB caosdb caosdb_grpc)
 
 
# target_include_directories(caosdb_grpc PUBLIC
 
# $<BUILD_INTERFACE:${libcaosdb_SOURCE_DIR}/include>
 
# $<BUILD_INTERFACE:${libcaosdb_BINARY_DIR}/include>
 
 
# $<INSTALL_INTERFACE:include>
 
# )
 
# target_include_directories(caosdb_grpc SYSTEM PUBLIC
 
# ${CONAN_INCLUDE_DIRS}
 
# )
 
# else()
 
# add_library(caosdb
 
# SHARED ${libcaosdb_INCL} ${libcaosdb_SRC} ${GRPC_GENERATED})
 
# set(LIBCAOSDB caosdb)
 
# endif()
 
# target_link_libraries(caosdb
 
# ${CONAN_LIBS}
 
# stdc++fs
 
# )
 
# target_include_directories(caosdb PUBLIC
 
# $<BUILD_INTERFACE:${libcaosdb_SOURCE_DIR}/include>
 
# $<BUILD_INTERFACE:${libcaosdb_BINARY_DIR}/include>
 
# $<BUILD_INTERFACE:${libcaosdb_SOURCE_DIR}/src>
 
# $<INSTALL_INTERFACE:include>
 
# )
 
# target_include_directories(caosdb SYSTEM PUBLIC
 
# ${CONAN_INCLUDE_DIRS}
 
# )
 
 
# add_library(ccaosdb SHARED src/ccaosdb.cpp)
 
# target_link_libraries(ccaosdb
 
# ${CONAN_LIBS}
 
# ${LIBCAOSDB}
 
# stdc++fs
 
# )
 
# target_include_directories(ccaosdb PUBLIC
 
# $<BUILD_INTERFACE:${libcaosdb_SOURCE_DIR}/include>
 
# $<BUILD_INTERFACE:${libcaosdb_BINARY_DIR}/include>
 
# $<INSTALL_INTERFACE:include>
 
# )
 
# target_include_directories(ccaosdb SYSTEM PUBLIC
 
# ${CONAN_INCLUDE_DIRS}
 
# )
 
 
 
# add_executable(ccaosdbcli EXCLUDE_FROM_ALL src/ccaosdbcli.c)
 
# target_include_directories(ccaosdbcli PUBLIC
 
# $<BUILD_INTERFACE:${libcaosdb_SOURCE_DIR}/include>
 
# $<BUILD_INTERFACE:${libcaosdb_BINARY_DIR}/include>
 
# $<INSTALL_INTERFACE:include>
 
# )
 
# target_include_directories(ccaosdbcli SYSTEM PUBLIC
 
# ${CONAN_INCLUDE_DIRS}
 
# )
 
 
# target_link_libraries(ccaosdbcli
 
# ${CONAN_LIBS}
 
# ${LIBCAOSDB}
 
# ccaosdb
 
# )
 
 
# add_executable(cxxcaosdbcli EXCLUDE_FROM_ALL src/cxxcaosdbcli.cpp)
 
# target_include_directories(cxxcaosdbcli PUBLIC
 
# $<BUILD_INTERFACE:${libcaosdb_SOURCE_DIR}/include>
 
# $<BUILD_INTERFACE:${libcaosdb_BINARY_DIR}/include>
 
# $<INSTALL_INTERFACE:include>
 
# )
 
# target_include_directories(cxxcaosdbcli SYSTEM PUBLIC
 
# ${CONAN_INCLUDE_DIRS}
 
# )
 
# target_link_libraries(cxxcaosdbcli
 
# ${LIBCAOSDB}
 
# ${CONAN_LIBS}
 
# )
@@ -366,76 +383,76 @@ if("${CMAKE_BUILD_TYPE}" MATCHES "Debug")
@@ -366,76 +383,76 @@ if("${CMAKE_BUILD_TYPE}" MATCHES "Debug")
add_subdirectory(test)
add_subdirectory(test)
endif()
endif()
###############################################
# ###############################################
############ INSTALLATION #####################
# ############ INSTALLATION #####################
###############################################
# ###############################################
set(libcaosdb_INCLUDE_DEST "include/caosdb")
# set(libcaosdb_INCLUDE_DEST "include/caosdb")
set(libcaosdb_LIB_DEST "lib")
# set(libcaosdb_LIB_DEST "lib")
set(CMAKE_INSTALL_PREFIX "$ENV{HOME}/.local/")
# set(CMAKE_INSTALL_PREFIX "$ENV{HOME}/.local/")
install(
# install(
# targets to install
# # targets to install
TARGETS ${LIBCAOSDB} ccaosdb
# TARGETS ${LIBCAOSDB} ccaosdb
# name of the CMake "export group" containing the targets we want to install
# # name of the CMake "export group" containing the targets we want to install
EXPORT caosdbTargets
# EXPORT caosdbTargets
# Dynamic, static library and include destination locations after running
# # Dynamic, static library and include destination locations after running
# "make install"
# # "make install"
LIBRARY DESTINATION ${libcaosdb_LIB_DEST}
# LIBRARY DESTINATION ${libcaosdb_LIB_DEST}
ARCHIVE DESTINATION ${libcaosdb_LIB_DEST}
# ARCHIVE DESTINATION ${libcaosdb_LIB_DEST}
INCLUDES DESTINATION ${libcaosdb_INCLUDE_DEST}
# INCLUDES DESTINATION ${libcaosdb_INCLUDE_DEST}
)
# )
set(libcaosdb_CMAKE_DEST "${libcaosdb_LIB_DEST}/cmake/caosdb")
# set(libcaosdb_CMAKE_DEST "${libcaosdb_LIB_DEST}/cmake/caosdb")
install(
# install(
# The export we want to save (matches name defined above containing the
# # The export we want to save (matches name defined above containing the
# install targets)
# # install targets)
EXPORT caosdbTargets
# EXPORT caosdbTargets
# CMake file in which to store the export's information
# # CMake file in which to store the export's information
FILE caosdbTargets.cmake
# FILE caosdbTargets.cmake
# Namespace prepends all targets in the export (when we import later, we
# # Namespace prepends all targets in the export (when we import later, we
# will use caosdb::caosdb)
# # will use caosdb::caosdb)
NAMESPACE caosdb::
# NAMESPACE caosdb::
# where to place the resulting file (here, we're putting it with the library)
# # where to place the resulting file (here, we're putting it with the library)
DESTINATION ${libcaosdb_CMAKE_DEST}
# DESTINATION ${libcaosdb_CMAKE_DEST}
)
# )
install(FILES ${libcaosdb_INCL} ${PROJECT_SOURCE_DIR}/include/ccaosdb.h DESTINATION ${libcaosdb_INCLUDE_DEST})
# install(FILES ${libcaosdb_INCL} ${PROJECT_SOURCE_DIR}/include/ccaosdb.h DESTINATION ${libcaosdb_INCLUDE_DEST})
foreach(i RANGE "${len_proto_files}")
# foreach(i RANGE "${len_proto_files}")
list(GET PROTO_FILES ${i} next_proto_file)
# list(GET PROTO_FILES ${i} next_proto_file)
# strip away the prefix path and the ".proto" suffix
# # strip away the prefix path and the ".proto" suffix
string(REPLACE
# string(REPLACE
"${PROJECT_SOURCE_DIR}/proto/proto/caosdb/"
# "${PROJECT_SOURCE_DIR}/proto/proto/caosdb/"
""
# ""
next_proto_module
# next_proto_module
"${next_proto_file}")
# "${next_proto_file}")
string(REPLACE
# string(REPLACE
"/main.proto"
# "/main.proto"
""
# ""
next_proto_module
# next_proto_module
"${next_proto_module}")
# "${next_proto_module}")
set(next_proto_hdr
# set(next_proto_hdr
"${CMAKE_CURRENT_BINARY_DIR}/include/caosdb/${next_proto_module}/main.pb.h")
# "${CMAKE_CURRENT_BINARY_DIR}/include/caosdb/${next_proto_module}/main.pb.h")
set(next_grpc_hdr
# set(next_grpc_hdr
"${CMAKE_CURRENT_BINARY_DIR}/include/caosdb/${next_proto_module}/main.grpc.pb.h")
# "${CMAKE_CURRENT_BINARY_DIR}/include/caosdb/${next_proto_module}/main.grpc.pb.h")
install(FILES ${next_proto_hdr} ${next_grpc_hdr} DESTINATION
# install(FILES ${next_proto_hdr} ${next_grpc_hdr} DESTINATION
${libcaosdb_INCLUDE_DEST}/${next_proto_module})
# ${libcaosdb_INCLUDE_DEST}/${next_proto_module})
endforeach()
# endforeach()
install(FILES ${PROJECT_SOURCE_DIR}/caosdbConfig.cmake
# install(FILES ${PROJECT_SOURCE_DIR}/caosdbConfig.cmake
DESTINATION ${libcaosdb_CMAKE_DEST})
# DESTINATION ${libcaosdb_CMAKE_DEST})
#set_property(TARGET caosdb PROPERTY VERSION ${libcaosdb_VERSION})
# #set_property(TARGET caosdb PROPERTY VERSION ${libcaosdb_VERSION})
include(CMakePackageConfigHelpers)
# include(CMakePackageConfigHelpers)
write_basic_package_version_file(
# write_basic_package_version_file(
"${PROJECT_SOURCE_DIR}/caosdbConfigVersion.cmake"
# "${PROJECT_SOURCE_DIR}/caosdbConfigVersion.cmake"
VERSION ${libcaosdb_VERSION}
# VERSION ${libcaosdb_VERSION}
COMPATIBILITY AnyNewerVersion
# COMPATIBILITY AnyNewerVersion
)
# )
install(FILES ${PROJECT_SOURCE_DIR}/caosdbConfigVersion.cmake
# install(FILES ${PROJECT_SOURCE_DIR}/caosdbConfigVersion.cmake
DESTINATION ${libcaosdb_CMAKE_DEST})
# DESTINATION ${libcaosdb_CMAKE_DEST})
#######################################################
#######################################################
### code formatting with clang-format
### code formatting with clang-format
Loading