Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Accelerators
MACHINE
GENERIC
AttributeCombiner
Commits
2f6438ce
Commit
2f6438ce
authored
Jul 27, 2022
by
Arnaud Le Meillour
Browse files
Update CI files
parent
b354e830
Pipeline
#82134
passed with stages
Changes
6
Pipelines
2
Hide whitespace changes
Inline
Side-by-side
.gitlab-ci.yml
View file @
2f6438ce
# Additional directive to this project
.project-build
:
after_script
:
-
"
##
End
of
script."
#.common-job:
# before_script:
# after_script:
#.common-alpine3:
# before_script:
# after_script:
#.common-debian9:
# before_script:
# after_script:
#.common-ubuntu20:
# before_script:
# after_script:
#.common-ubuntu22:
# before_script:
# after_script:
.project-deploy
:
after_script
:
-
"
##
End
of
script."
include
:
-
project
:
'
accelerators/cicd/ci-cd/template'
ref
:
'
Tango_9.3_
A
'
ref
:
'
Tango_9.3_
C
'
file
:
'
build_project.yml'
\ No newline at end of file
CMakeLists.txt
View file @
2f6438ce
...
...
@@ -22,7 +22,7 @@ OPTION(BUILD_SHARED_LIBS "Build Tango classes as Shared libraries" ON)
# - configTangoClass() -> Load after default Tango Class target configuration
# - configTangoServer() -> Load after default Tango Server target configuration
#
includeOptional
(
"/opt/os_dev/ESRF-config.cmake"
)
includeOptional
(
"/opt/os_dev/
cpp/
ESRF-config.cmake"
)
include
(
./cmake/build-common.cmake
)
...
...
cmake/build-common.cmake
View file @
2f6438ce
...
...
@@ -2,7 +2,6 @@ if(${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_BINARY_DIR})
message
(
FATAL_ERROR
"In-source builds not allowed. Please make a new directory (called a build directory) and run CMake from there."
)
endif
()
# Detect some system environment variables and if existing, recreate them as CMake variables
# to use them for config
msg
(
DEBUG
"Check if envirronment variable for CMake config are set and if yes put them as CMake variables"
)
...
...
@@ -32,6 +31,11 @@ endif()
set
(
TC_TEMPLATE_DIR
${
CMAKE_CURRENT_SOURCE_DIR
}
/cmake/template
)
# Default dir can be override in institute project config file
## use in local CMake library file to search Tango classes external of project
set
(
TC_DEFAULT_TANGO_CLASS_SEARCH_DIR
"/usr/local/lib"
)
set
(
TC_DEFAULT_TANGO_LIBS_SEARCH_DIR
"/usr/local/lib"
)
string
(
TIMESTAMP VERSION_BUILD_TIMESTAMP
"%Y-%m-%d %H:%M:%S"
)
# INSTITUTE PROJECT CONFIGURATION
...
...
@@ -41,92 +45,21 @@ configProject()
getGitInfo
()
###############################################################################
###############################################################################
msg
(
SECTION
"CONFIGURE TANGO LIBRARIES TARGET : Tango_lib-target"
)
# GET TANGO LIBRARIES
#set(TC_TANGO_LIB dl;pthread;zmq;omniORB4;COS4;omniDynamic4;omnithread;tango)
set
(
TC_TANGO_LIB
)
set
(
TC_TANGO_LIB_DIR
)
set
(
TC_TANGO_LIB_INCLUDE_DIR
)
if
(
NOT TARGET Tango_lib-target
)
# #-ZeroMQ-####################
# findLib(
# NAME zmq
# NAME_CMAKE ZeroMQ
# NAME_PKG_CONFIG libzmq
# VERSION ${TC_ZMQ_VERSION}
# SEARCH_DIR ${TC_ZMQ_DIR}
# OUTPUT_LIB_DIR TC_TANGO_LIB_DIR
# OUTPUT_INCLUDE_DIR TC_TANGO_LIB_INCLUDE_DIR
# )
#-CppZMQ-####################
findLib
(
NAME cppzmq
NAME_CMAKE cppzmq
VERSION
${
TC_CPPZMQ_VERSION
}
SEARCH_DIR
${
TC_ZMQ_DIR
}
;
${
TC_CPPZMQ_DIR
}
OUTPUT_LIB TC_TANGO_LIB
OUTPUT_LIB_DIR TC_TANGO_LIB_DIR
OUTPUT_INCLUDE_DIR TC_TANGO_LIB_INCLUDE_DIR
)
# #-omniORB-####################
# findLib(
# NAME omniORB
# NAME_PKG_CONFIG omniORB4
# VERSION ${TC_OMNIORB_VERSION}
# SEARCH_DIR ${TC_OMNIORB_DIR}
# OUTPUT_LIB_DIR TC_TANGO_LIB_DIR
# OUTPUT_INCLUDE_DIR TC_TANGO_LIB_INCLUDE_DIR
# )
#-cppTango-####################
findLib
(
NAME cppTango
NAME_PKG_CONFIG tango
VERSION
${
TC_CPPTANGO_VERSION
}
SEARCH_DIR
${
TC_ZMQ_DIR
}
;
${
TC_CPPZMQ_DIR
}
;
${
TC_OMNIORB_DIR
}
;
${
TC_CPPTANGO_DIR
}
OUTPUT_LIB TC_TANGO_LIB
OUTPUT_LIB_DIR TC_TANGO_LIB_DIR
OUTPUT_INCLUDE_DIR TC_TANGO_LIB_INCLUDE_DIR
)
# Create an interface library for the tango libraries
add_library
(
Tango_lib-target INTERFACE
)
set_target_properties
(
Tango_lib-target
PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES
"
${
TC_TANGO_LIB_INCLUDE_DIR
}
"
INTERFACE_LINK_LIBRARIES
"
${
TC_TANGO_LIB
}
"
INTERFACE_LINK_DIRECTORIES
"
${
TC_TANGO_LIB_DIR
}
"
)
get_property
(
TANGO_INCLUDE_DIR
TARGET Tango_lib-target
PROPERTY INTERFACE_INCLUDE_DIRECTORIES
)
get_property
(
TANGO_LINK_LIBRARIES
TARGET Tango_lib-target
PROPERTY INTERFACE_INCLUDE_DIRECTORIES
)
get_property
(
TANGO_LINK_DIRECTORIES
TARGET Tango_lib-target
PROPERTY INTERFACE_INCLUDE_DIRECTORIES
)
print
(
TANGO_INCLUDE_DIR
)
print
(
TANGO_LINK_LIBRARIES
)
print
(
TANGO_LINK_DIRECTORIES
)
unset
(
TANGO_INCLUDE_DIR
)
unset
(
TANGO_LINK_LIBRARIES
)
unset
(
TANGO_LINK_DIRECTORIES
)
endif
()
#-CppZMQ-####################
findLib
(
NAME cppzmq
NAME_CMAKE cppzmq
VERSION
${
TC_CPPZMQ_VERSION
}
SEARCH_DIR
${
TC_ZMQ_DIR
}
;
${
TC_CPPZMQ_DIR
}
)
#-cppTango-####################
findLib
(
NAME cppTango
NAME_PKG_CONFIG tango
VERSION
${
TC_CPPTANGO_VERSION
}
SEARCH_DIR
${
TC_ZMQ_DIR
}
;
${
TC_CPPZMQ_DIR
}
;
${
TC_OMNIORB_DIR
}
;
${
TC_CPPTANGO_DIR
}
)
include
(
./cmake/debug.cmake
)
cmake/build-tango-class.cmake
View file @
2f6438ce
...
...
@@ -63,7 +63,8 @@ target_sources(${TC_TARGET}
target_link_libraries
(
${
TC_TARGET
}
PRIVATE
Tango_lib-target
cppTango-target
cppzmq-target
PUBLIC
${
TC_TANGO_CLASSES_TARGET
}
)
...
...
@@ -98,7 +99,7 @@ set_target_properties(${TC_TARGET}
COMPATIBLE_INTERFACE_STRING
${
PROJECT_NAME
}
_MAJOR_VERSION
)
install
(
TARGETS
${
TC_TARGET
}
Tango
_lib
-target
install
(
TARGETS
${
TC_TARGET
}
cpp
Tango
-target cppzmq
-target
EXPORT
${
TC_EXPORT
}
PERMISSIONS
${
TC_PERMISSIONS_LIB_FILES
}
ARCHIVE DESTINATION
${
CMAKE_INSTALL_LIBDIR
}
...
...
cmake/build-tango-server.cmake
View file @
2f6438ce
...
...
@@ -44,7 +44,8 @@ target_sources(${TC_TARGET}
target_link_libraries
(
${
TC_TARGET
}
PRIVATE
Tango_lib-target
cppTango-target
cppzmq-target
${
TC_TANGO_CLASSES_TARGET
}
)
...
...
cmake/library.cmake
100644 → 100755
View file @
2f6438ce
...
...
@@ -4,6 +4,7 @@ include(GNUInstallDirs)
include
(
CMakePackageConfigHelpers
)
include
(
CMakeParseArguments
)
include
(
CMakeFindDependencyMacro
)
include
(
FindPackageHandleStandardArgs
)
#include(ProcessorCount)
#include(CMakePrintHelpers)
#include(ExternalProject)
...
...
@@ -216,21 +217,24 @@ function(msg)
message
(
"
${
FEBold
}${
FEUnderline
}
\n
${
MSG_CONTENT
}${
FEReset
}
"
)
elseif
(
MSG_TYPE STREQUAL STATUS
)
message
(
STATUS
"
${
FC
Blue
}${
FEBold
}${
MSG_CONTENT
}${
FEReset
}
"
)
message
(
STATUS
"
${
FC
Green
}${
FEBold
}${
MSG_CONTENT
}${
FEReset
}
"
)
elseif
(
MSG_TYPE STREQUAL STATUS_1
)
message
(
STATUS
"
${
FC
Blue
}
-
${
MSG_CONTENT
}${
FEReset
}
"
)
message
(
STATUS
"
${
FC
Green
}
-
${
MSG_CONTENT
}${
FEReset
}
"
)
elseif
(
MSG_TYPE STREQUAL STATUS_2
)
message
(
STATUS
"
${
FC
Blue
}${
FEFaint
}
~
${
MSG_CONTENT
}${
FEReset
}
"
)
message
(
STATUS
"
${
FC
Green
}${
FEFaint
}
~
${
MSG_CONTENT
}${
FEReset
}
"
)
elseif
(
MSG_TYPE STREQUAL DEBUG
)
message
(
DEBUG
"
${
FC
Cyan
}${
FEBold
}${
MSG_CONTENT
}${
FEReset
}
"
)
message
(
DEBUG
"
${
FC
Magenta
}${
FEBold
}${
MSG_CONTENT
}${
FEReset
}
"
)
elseif
(
MSG_TYPE STREQUAL DEBUG_1
)
message
(
DEBUG
"
${
FC
Cyan
}
-
${
MSG_CONTENT
}${
FEReset
}
"
)
message
(
DEBUG
"
${
FC
Magenta
}
-
${
MSG_CONTENT
}${
FEReset
}
"
)
elseif
(
MSG_TYPE STREQUAL DEBUG_2
)
message
(
DEBUG
"
${
FCCyan
}${
FEFaint
}
~
${
MSG_CONTENT
}${
FEReset
}
"
)
#message(DEBUG "${FCMagenta}${FEFaint} ~ ${MSG_CONTENT}${FEReset}")
message
(
DEBUG
"
${
FCMagenta
}
~
${
MSG_CONTENT
}${
FEReset
}
"
)
elseif
(
MSG_TYPE STREQUAL WARNING
)
message
(
WARNING
"
${
FCYellow
}${
FEBold
}${
MSG_CONTENT
}${
FEReset
}
"
)
elseif
(
MSG_TYPE STREQUAL CUSTOM_WARNING
)
message
(
STATUS
"
${
FCYellow
}${
FEBold
}${
MSG_CONTENT
}${
FEReset
}
"
)
elseif
(
MSG_TYPE STREQUAL AUTHOR_WARNING
)
message
(
AUTHOR_WARNING
"
${
FCYellow
}${
MSG_CONTENT
}${
FEReset
}
"
)
...
...
@@ -364,7 +368,8 @@ function(getGitInfo)
OUTPUT_STRIP_TRAILING_WHITESPACE
)
if
(
NOT _PROCESS_RESULT EQUAL 0
)
msg
(
WARNING
"Failed to get the long SHA1 hash for the repository. Error:
${
_PROCESS_ERROR
}
"
)
msg
(
CUSTOM_WARNING
"Failed to get the long SHA1 hash for the repository !"
)
#msg(WARNING "Error: ${_PROCESS_ERROR}")
endif
()
# Get the short version of the SHA1
...
...
@@ -377,7 +382,8 @@ function(getGitInfo)
OUTPUT_STRIP_TRAILING_WHITESPACE
)
if
(
NOT _PROCESS_RESULT EQUAL 0
)
msg
(
WARNING
"Failed to get the short SHA1 hash for the repository. Error:
${
_PROCESS_ERROR
}
"
)
msg
(
CUSTOM_WARNING
"Failed to get the short SHA1 hash for the repository !"
)
#msg(WARNING "Error: ${_PROCESS_ERROR}")
endif
()
# Get the branch it was built from
...
...
@@ -390,7 +396,8 @@ function(getGitInfo)
OUTPUT_STRIP_TRAILING_WHITESPACE
)
if
(
NOT _PROCESS_RESULT EQUAL 0
)
msg
(
WARNING
"Failed to get the current branch for the repository. Error:
${
_PROCESS_ERROR
}
"
)
msg
(
CUSTOM_WARNING
"Failed to get the current branch for the repository !"
)
#msg(WARNING "Error: ${_PROCESS_ERROR}")
endif
()
# Detached head, see if this is a tag in detached mode
...
...
@@ -420,7 +427,8 @@ function(getGitInfo)
OUTPUT_STRIP_TRAILING_WHITESPACE
)
if
(
NOT _PROCESS_RESULT EQUAL 0
)
msg
(
WARNING
"Failed to get the current tag for the repository. Error:
${
_PROCESS_ERROR
}
"
)
msg
(
CUSTOM_WARNING
"Failed to get the current tag for the repository !"
)
#msg(WARNING "Error: ${_PROCESS_ERROR}")
endif
()
# Check for dirty source
...
...
@@ -448,7 +456,8 @@ function(getGitInfo)
OUTPUT_STRIP_TRAILING_WHITESPACE
)
if
(
NOT _PROCESS_RESULT EQUAL 0
)
message
(
WARNING
"Failed to get the commit date for the last commit. Error:
${
_PROCESS_ERROR
}
"
)
msg
(
CUSTOM_WARNING
"Failed to get the commit date for the last commit !"
)
#msg(WARNING "Error: ${_PROCESS_ERROR}")
endif
()
# Get the commit author
...
...
@@ -461,7 +470,8 @@ function(getGitInfo)
OUTPUT_STRIP_TRAILING_WHITESPACE
)
if
(
NOT _PROCESS_RESULT EQUAL 0
)
message
(
WARNING
"Failed to get the commit author for the last commit. Error:
${
_PROCESS_ERROR
}
"
)
msg
(
CUSTOM_WARNING
"Failed to get the commit author for the last commit !"
)
#msg(WARNING "Error: ${_PROCESS_ERROR}")
endif
()
# Build the version string
...
...
@@ -511,19 +521,39 @@ function(findLib)
# Parse the parameters
set
(
ARGS_OPTIONS
)
set
(
ARGS_ONE_VALUE NAME NAME_CMAKE NAME_PKG_CONFIG VERSION
OUTPUT_LIB OUTPUT_LIB_DIR OUTPUT_INCLUDE_DIR
)
set
(
ARGS_MULTI_VALUE SEARCH_DIR
)
set
(
ARGS_ONE_VALUE NAME NAME_CMAKE NAME_PKG_CONFIG VERSION
)
set
(
ARGS_MULTI_VALUE
NAME_HEADERS NAME_SO_FILES
SEARCH_DIR
)
cmake_parse_arguments
(
_LIB
"
${
ARGS_OPTIONS
}
"
"
${
ARGS_ONE_VALUE
}
"
"
${
ARGS_MULTI_VALUE
}
"
${
ARGN
}
)
# Check Given Name use to create target and test if Target already created..
if
(
_LIB_NAME
)
msg
(
SECTION
"CONFIGURE TARGET interface for library:
${
_LIB_NAME
}
"
)
if
(
TARGET
${
_LIB_NAME
}
-target
)
msg
(
STATUS
"Search lib
${
_LIB_NAME
}
canceled,
${
_LIB_NAME
}
-target already exist."
)
return
()
endif
()
else
()
msg
(
WARNING
"NAME argument is mandatory when using findLib function !"
)
return
()
endif
()
# Set Flag
set
(
JOB_DONE FALSE
)
list
(
APPEND CMAKE_PREFIX_PATH
${
_LIB_SEARCH_DIR
}
)
set
(
ENV{PKG_CONFIG_PATH}
"
${
_LIB_SEARCH_DIR
}
"
)
# Add optional others directories in search dir list
if
(
_LIB_SEARCH_DIR
)
list
(
APPEND CMAKE_PREFIX_PATH
${
_LIB_SEARCH_DIR
}
)
set
(
ENV{PKG_CONFIG_PATH}
"
${
_LIB_SEARCH_DIR
}
"
)
endif
()
#########################################################
# Search via find_package() for CMake files
if
(
NOT
"
${
_LIB_NAME_CMAKE
}
"
STREQUAL
""
)
msg
(
DEBUG
" - Search
${
_LIB_NAME_CMAKE
}
(version >=
${
_LIB_VERSION
}
) via CMake find_package()"
)
printDebug
(
CMAKE_PREFIX_PATH
)
find_package
(
${
_LIB_NAME_CMAKE
}
${
_LIB_VERSION
}
QUIET
)
find_package
(
${
_LIB_NAME_CMAKE
}
${
_LIB_VERSION
}
QUIET
)
if
(
${
_LIB_NAME_CMAKE
}
_FOUND
)
msg
(
DEBUG
"
${
_LIB_NAME_CMAKE
}
found via CMake file"
)
printDebug
(
${
_LIB_NAME_CMAKE
}
_VERSION
)
...
...
@@ -538,36 +568,39 @@ function(findLib)
)
printDebug
(
${
_LIB_NAME_CMAKE
}
_LIB_DIR
)
endif
()
# Update Parent scope variables
if
(
DEFINED
${
_LIB_NAME_PKG_CONFIG
}
_LIBRARY
)
appendParentScope
(
${
_LIB_OUTPUT_LIB
}
"
${${
_LIB_NAME_PKG_CONFIG
}
_LIBRARY
}
"
)
endif
()
if
(
DEFINED
${
_LIB_NAME_CMAKE
}
_LIB_DIR
)
appendParentScope
(
${
_LIB_OUTPUT_LIB_DIR
}
${${
_LIB_NAME_CMAKE
}
_LIB_DIR
}
)
endif
()
if
(
DEFINED
${
_LIB_NAME_CMAKE
}
_INCLUDE_DIR
)
appendParentScope
(
${
_LIB_OUTPUT_INCLUDE_DIR
}
${${
_LIB_NAME_CMAKE
}
_INCLUDE_DIR
}
)
endif
()
# Create Target
add_library
(
${
_LIB_NAME
}
-target INTERFACE
)
set_target_properties
(
${
_LIB_NAME
}
-target
PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES
"
${${
_LIB_NAME_CMAKE
}
_INCLUDE_DIR
}
"
INTERFACE_LINK_LIBRARIES
"
${${
_LIB_NAME_CMAKE
}
_LIBRARY
}
"
INTERFACE_LINK_DIRECTORIES
"
${${
_LIB_NAME_CMAKE
}
_LIB_DIR
}
"
)
set
(
JOB_DONE TRUE
)
else
()
msg
(
WARNING
"
Warning,
${
_LIB_NAME_CMAKE
}
not found via Cmake find_package() !"
)
msg
(
CUSTOM_
WARNING
"
${
_LIB_NAME_CMAKE
}
not found via Cmake find_package() !"
)
endif
()
endif
()
#########################################################
# Search via pkg_search_module() for PkgConfig files
if
(
(
NOT
"
${
_LIB_NAME_PKG_CONFIG
}
"
STREQUAL
""
)
AND
(
NOT
${
_LIB_NAME_CMAKE
}
_FOUND
)
)
if
((
NOT
"
${
_LIB_NAME_PKG_CONFIG
}
"
STREQUAL
""
)
AND
(
NOT JOB_DONE
))
# Change format of control version for PkgConfig search
if
(
_LIB_VERSION
)
set
(
ARG_VERSION
${
_LIB_NAME_PKG_CONFIG
}
>=
${
_LIB_VERSION
}
)
else
()
set
(
ARG_VERSION
${
_LIB_NAME_PKG_CONFIG
}
)
endif
()
msg
(
DEBUG
" - Search
${
_LIB_NAME_PKG_CONFIG
}
(
${
ARG_VERSION
}
) via Pkg-Config"
)
# Check prerequisites
find_package
(
PkgConfig QUIET
)
if
(
PKG_CONFIG_FOUND
)
# Change format of control version for PkgConfig search
if
(
_LIB_VERSION
)
set
(
ARG_VERSION
${
_LIB_NAME_PKG_CONFIG
}
>=
${
_LIB_VERSION
}
)
else
()
set
(
ARG_VERSION
${
_LIB_NAME_PKG_CONFIG
}
)
endif
()
msg
(
DEBUG
" - Search
${
_LIB_NAME_PKG_CONFIG
}
(
${
ARG_VERSION
}
) via Pkg-Config"
)
printDebug
(
CMAKE_PREFIX_PATH
)
pkg_search_module
(
${
_LIB_NAME_PKG_CONFIG
}
${
ARG_VERSION
}
QUIET
)
if
(
${
_LIB_NAME_PKG_CONFIG
}
_FOUND
)
set
(
LIB_FOUND TRUE
)
msg
(
DEBUG
"
${
_LIB_NAME_PKG_CONFIG
}
found via Pkg-Config file"
)
#pkg_get_variable(resultVar${_LIB_PKG_CONFIG} libdir)
printDebug
(
${
_LIB_NAME_PKG_CONFIG
}
_VERSION
)
...
...
@@ -580,28 +613,91 @@ function(findLib)
printDebug
(
${
_LIB_NAME_PKG_CONFIG
}
_CFLAGS_OTHER
)
printDebug
(
${
_LIB_NAME_PKG_CONFIG
}
_PREFIX
)
printDebug
(
${
_LIB_NAME_PKG_CONFIG
}
_LIBDIR
)
# Update Parent scope variables
if
(
DEFINED
${
_LIB_NAME_PKG_CONFIG
}
_LIBRARIES
)
appendParentScope
(
${
_LIB_OUTPUT_LIB
}
"
${${
_LIB_NAME_PKG_CONFIG
}
_LIBRARIES
}
"
)
endif
()
if
(
DEFINED
${
_LIB_NAME_PKG_CONFIG
}
_LIBRARY_DIRS
)
appendParentScope
(
${
_LIB_OUTPUT_LIB_DIR
}
"
${${
_LIB_NAME_PKG_CONFIG
}
_LIBRARY_DIRS
}
"
)
endif
()
if
(
DEFINED
${
_LIB_NAME_PKG_CONFIG
}
_INCLUDE_DIRS
)
appendParentScope
(
${
_LIB_OUTPUT_INCLUDE_DIR
}
"
${${
_LIB_NAME_PKG_CONFIG
}
_INCLUDE_DIRS
}
"
)
endif
()
# Create Target
add_library
(
${
_LIB_NAME
}
-target INTERFACE
)
set_target_properties
(
${
_LIB_NAME
}
-target
PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES
"
${${
_LIB_NAME_PKG_CONFIG
}
_INCLUDE_DIRS
}
"
INTERFACE_LINK_LIBRARIES
"
${${
_LIB_NAME_PKG_CONFIG
}
_LIBRARIES
}
"
INTERFACE_LINK_DIRECTORIES
"
${${
_LIB_NAME_PKG_CONFIG
}
_LIBRARY_DIRS
}
"
)
set
(
JOB_DONE TRUE
)
else
()
msg
(
FATAL_ERROR
" Task canceled,
${
_LIB_NAME_PKG_CONFIG
}
not found via pkg_search_module() !"
)
msg
(
CUSTOM_WARNING
"
${
_LIB_NAME_PKG_CONFIG
}
not found via pkg_search_module() !"
)
endif
()
else
()
msg
(
FATAL_ERROR
" Task canceled, PkgConfig not found !"
)
msg
(
CUSTOM_WARNING
"Task canceled, PkgConfig not found !"
)
endif
()
endif
()
#########################################################
# Search by .so and headers files
if
((
_LIB_NAME_HEADERS AND _LIB_NAME_SO_FILES
)
AND
(
NOT JOB_DONE
))
msg
(
DEBUG
" - Search
${
_LIB_NAME
}
via files:
${
_LIB_NAME_HEADERS
}
${
_LIB_NAME_SO_FILES
}
"
)
find_path
(
${
_LIB_NAME
}
_INCLUDE_DIR
NAMES
${
_LIB_NAME_HEADERS
}
PATHS
${
CMAKE_PREFIX_PATH
}
)
find_library
(
${
_LIB_NAME
}
_LIBRARY
NAMES
${
_LIB_NAME_SO_FILES
}
PATHS
${
CMAKE_PREFIX_PATH
}
)
find_package_handle_standard_args
(
${
_LIB_NAME
}
DEFAULT_MSG
${
_LIB_NAME
}
_LIBRARY
${
_LIB_NAME
}
_INCLUDE_DIR
)
if
(
${
_LIB_NAME
}
_FOUND
)
get_filename_component
(
${
_LIB_NAME
}
_LIB
${${
_LIB_NAME
}
_LIBRARY
}
NAME
)
get_filename_component
(
${
_LIB_NAME
}
_LIB_DIR
${${
_LIB_NAME
}
_LIBRARY
}
DIRECTORY
)
mark_as_advanced
(
${
_LIB_NAME
}
_INCLUDE_DIR
${
_LIB_NAME
}
_LIBRARY
${
_LIB_NAME
}
_LIB
${
_LIB_NAME
}
_LIB_DIR
)
# Create Target
add_library
(
${
_LIB_NAME
}
-target INTERFACE
)
set_target_properties
(
${
_LIB_NAME
}
-target
PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES
"
${${
_LIB_NAME
}
_INCLUDE_DIR
}
"
INTERFACE_LINK_LIBRARIES
"
${${
_LIB_NAME
}
_LIB
}
"
INTERFACE_LINK_DIRECTORIES
"
${${
_LIB_NAME
}
_LIB_DIR
}
"
)
set
(
JOB_DONE TRUE
)
else
()
msg
(
CUSTOM_WARNING
"
${
_LIB_NAME
}
not found via lib files search !"
)
endif
()
endif
()
#########################################################
# End check
if
(
TARGET
${
_LIB_NAME
}
-target
)
get_property
(
${
_LIB_NAME
}
_INCLUDE_DIR
TARGET
${
_LIB_NAME
}
-target
PROPERTY INTERFACE_INCLUDE_DIRECTORIES
)
get_property
(
${
_LIB_NAME
}
_LINK_LIBRARIES
TARGET
${
_LIB_NAME
}
-target
PROPERTY INTERFACE_LINK_LIBRARIES
)
get_property
(
${
_LIB_NAME
}
_LINK_DIRECTORIES
TARGET
${
_LIB_NAME
}
-target
PROPERTY INTERFACE_LINK_DIRECTORIES
)
msg
(
STATUS
"Lib
${
_LIB_NAME
}
successfully founded,
${
_LIB_NAME
}
-target created."
)
print
(
${
_LIB_NAME
}
_INCLUDE_DIR
)
print
(
${
_LIB_NAME
}
_LINK_LIBRARIES
)
print
(
${
_LIB_NAME
}
_LINK_DIRECTORIES
)
else
()
msg
(
FATAL_ERROR
"Fail to find lib
${
_LIB_NAME
}
!"
)
endif
()
set
(
CMAKE_FIND_DEBUG_MODE FALSE
)
endfunction
()
############################################
# Search Tango Class library via 3 ways
# - by file system : find locally with optional search_dir arg
...
...
@@ -635,6 +731,12 @@ function(getTangoClass)
prependParentScope
(
CMAKE_PREFIX_PATH
${
_CLASS_SEARCH_DIR
}
)
msg
(
DEBUG
" with additional search dir.."
)
printDebug
(
CMAKE_PREFIX_PATH
)
else
()
prependParentScope
(
CMAKE_PREFIX_PATH
${
TC_DEFAULT_TANGO_CLASS_SEARCH_DIR
}
/
${
_CLASS_NAME
}
)
prependParentScope
(
CMAKE_PREFIX_PATH
${
TC_DEFAULT_TANGO_CLASS_SEARCH_DIR
}
/
${
_CLASS_NAME
}
/current
)
prependParentScope
(
CMAKE_PREFIX_PATH
${
TC_DEFAULT_TANGO_CLASS_SEARCH_DIR
}
/
${
_CLASS_NAME
}
/default
)
msg
(
DEBUG
" with additional search dir.."
)
printDebug
(
CMAKE_PREFIX_PATH
)
endif
()
find_dependency
(
${
_CLASS_NAME
}
${
_CLASS_VERSION
}
QUIET
)
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment