Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
G
git2
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lvzhengyang
git2
Commits
c3fec456
Commit
c3fec456
authored
Nov 11, 2021
by
Edward Thomson
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
cmake: reformat modules
Apply the standard project cmake formatting to the modules.
parent
b608af6c
Show whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
558 additions
and
681 deletions
+558
-681
cmake/AddCFlagIfSupported.cmake
+21
-21
cmake/EnableWarnings.cmake
+13
-13
cmake/FindCoreFoundation.cmake
+13
-13
cmake/FindGSSAPI.cmake
+117
-233
cmake/FindGSSFramework.cmake
+13
-13
cmake/FindHTTPParser.cmake
+17
-17
cmake/FindIconv.cmake
+27
-27
cmake/FindLibSSH2.cmake
+4
-4
cmake/FindPCRE.cmake
+13
-13
cmake/FindPCRE2.cmake
+12
-12
cmake/FindPkgLibraries.cmake
+19
-19
cmake/FindSecurity.cmake
+14
-14
cmake/Findfutimens.cmake
+8
-8
cmake/FindmbedTLS.cmake
+46
-53
cmake/IdeSplitSources.cmake
+17
-17
cmake/PkgBuildConfig.cmake
+0
-0
cmake/SanitizeBool.cmake
+20
-20
cmake/SelectGSSAPI.cmake
+37
-37
cmake/SelectHTTPSBackend.cmake
+100
-100
cmake/SelectHashes.cmake
+47
-47
No files found.
cmake/AddCFlagIfSupported.cmake
View file @
c3fec456
...
...
@@ -3,28 +3,28 @@
# <flag> - the compiler flag to test
# This internally calls the CHECK_C_COMPILER_FLAG macro.
INCLUDE
(
CheckCCompilerFlag
)
include
(
CheckCCompilerFlag
)
MACRO
(
ADD_C_FLAG _FLAG
)
STRING
(
TOUPPER
${
_FLAG
}
UPCASE
)
STRING
(
REGEX REPLACE
"[-=]"
"_"
UPCASE_PRETTY
${
UPCASE
}
)
STRING
(
REGEX REPLACE
"^_+"
""
UPCASE_PRETTY
${
UPCASE_PRETTY
}
)
CHECK_C_COMPILER_FLAG
(
${
_FLAG
}
IS_
${
UPCASE_PRETTY
}
_SUPPORTED
)
macro
(
ADD_C_FLAG _FLAG
)
string
(
TOUPPER
${
_FLAG
}
UPCASE
)
string
(
REGEX REPLACE
"[-=]"
"_"
UPCASE_PRETTY
${
UPCASE
}
)
string
(
REGEX REPLACE
"^_+"
""
UPCASE_PRETTY
${
UPCASE_PRETTY
}
)
check_c_compiler_flag
(
${
_FLAG
}
IS_
${
UPCASE_PRETTY
}
_SUPPORTED
)
IF
(
IS_
${
UPCASE_PRETTY
}
_SUPPORTED
)
SET
(
CMAKE_C_FLAGS
"
${
CMAKE_C_FLAGS
}
${
_FLAG
}
"
)
ELSE
()
MESSAGE
(
FATAL_ERROR
"Required flag
${
_FLAG
}
is not supported"
)
ENDIF
()
ENDMACRO
()
if
(
IS_
${
UPCASE_PRETTY
}
_SUPPORTED
)
set
(
CMAKE_C_FLAGS
"
${
CMAKE_C_FLAGS
}
${
_FLAG
}
"
)
else
()
message
(
FATAL_ERROR
"Required flag
${
_FLAG
}
is not supported"
)
endif
()
endmacro
()
MACRO
(
ADD_C_FLAG_IF_SUPPORTED _FLAG
)
STRING
(
TOUPPER
${
_FLAG
}
UPCASE
)
STRING
(
REGEX REPLACE
"[-=]"
"_"
UPCASE_PRETTY
${
UPCASE
}
)
STRING
(
REGEX REPLACE
"^_+"
""
UPCASE_PRETTY
${
UPCASE_PRETTY
}
)
CHECK_C_COMPILER_FLAG
(
${
_FLAG
}
IS_
${
UPCASE_PRETTY
}
_SUPPORTED
)
macro
(
ADD_C_FLAG_IF_SUPPORTED _FLAG
)
string
(
TOUPPER
${
_FLAG
}
UPCASE
)
string
(
REGEX REPLACE
"[-=]"
"_"
UPCASE_PRETTY
${
UPCASE
}
)
string
(
REGEX REPLACE
"^_+"
""
UPCASE_PRETTY
${
UPCASE_PRETTY
}
)
check_c_compiler_flag
(
${
_FLAG
}
IS_
${
UPCASE_PRETTY
}
_SUPPORTED
)
IF
(
IS_
${
UPCASE_PRETTY
}
_SUPPORTED
)
SET
(
CMAKE_C_FLAGS
"
${
CMAKE_C_FLAGS
}
${
_FLAG
}
"
)
ENDIF
()
ENDMACRO
()
if
(
IS_
${
UPCASE_PRETTY
}
_SUPPORTED
)
set
(
CMAKE_C_FLAGS
"
${
CMAKE_C_FLAGS
}
${
_FLAG
}
"
)
endif
()
endmacro
()
cmake/EnableWarnings.cmake
View file @
c3fec456
MACRO
(
ENABLE_WARNINGS flag
)
ADD_C_FLAG_IF_SUPPORTED
(
-W
${
flag
}
)
ENDMACRO
()
macro
(
ENABLE_WARNINGS flag
)
add_c_flag_if_supported
(
-W
${
flag
}
)
endmacro
()
MACRO
(
DISABLE_WARNINGS flag
)
ADD_C_FLAG_IF_SUPPORTED
(
-Wno-
${
flag
}
)
ENDMACRO
()
macro
(
DISABLE_WARNINGS flag
)
add_c_flag_if_supported
(
-Wno-
${
flag
}
)
endmacro
()
IF
(
ENABLE_WERROR
)
IF
(
MSVC
)
ADD_COMPILE_OPTIONS
(
-WX
)
ELSE
()
ADD_C_FLAG_IF_SUPPORTED
(
-Werror
)
ENDIF
()
ENDIF
()
if
(
ENABLE_WERROR
)
if
(
MSVC
)
add_compile_options
(
-WX
)
else
()
add_c_flag_if_supported
(
-Werror
)
endif
()
endif
()
cmake/FindCoreFoundation.cmake
View file @
c3fec456
...
...
@@ -6,21 +6,21 @@
# COREFOUNDATION_LDFLAGS
#
FIND_PATH
(
COREFOUNDATION_INCLUDE_DIR NAMES CoreFoundation.h
)
FIND_LIBRARY
(
COREFOUNDATION_LIBRARIES NAMES CoreFoundation
)
IF
(
COREFOUNDATION_INCLUDE_DIR AND COREFOUNDATION_LIBRARIES
)
IF
(
NOT CoreFoundation_FIND_QUIETLY
)
MESSAGE
(
STATUS
"Found CoreFoundation
${
COREFOUNDATION_LIBRARIES
}
"
)
ENDIF
()
SET
(
COREFOUNDATION_FOUND TRUE
)
SET
(
COREFOUNDATION_LDFLAGS
"-framework CoreFoundation"
)
ENDIF
()
find_path
(
COREFOUNDATION_INCLUDE_DIR NAMES CoreFoundation.h
)
find_library
(
COREFOUNDATION_LIBRARIES NAMES CoreFoundation
)
if
(
COREFOUNDATION_INCLUDE_DIR AND COREFOUNDATION_LIBRARIES
)
if
(
NOT CoreFoundation_FIND_QUIETLY
)
message
(
STATUS
"Found CoreFoundation
${
COREFOUNDATION_LIBRARIES
}
"
)
endif
()
set
(
COREFOUNDATION_FOUND TRUE
)
set
(
COREFOUNDATION_LDFLAGS
"-framework CoreFoundation"
)
endif
()
IF
(
CoreFoundation_FIND_REQUIRED AND NOT COREFOUNDATION_FOUND
)
MESSAGE
(
FATAL_ERROR
"CoreFoundation not found"
)
ENDIF
()
if
(
CoreFoundation_FIND_REQUIRED AND NOT COREFOUNDATION_FOUND
)
message
(
FATAL_ERROR
"CoreFoundation not found"
)
endif
()
MARK_AS_ADVANCED
(
mark_as_advanced
(
COREFOUNDATION_INCLUDE_DIR
COREFOUNDATION_LIBRARIES
)
cmake/FindGSSAPI.cmake
View file @
c3fec456
...
...
@@ -25,300 +25,184 @@
#
find_path
(
GSSAPI_ROOT_DIR
NAMES
include/gssapi.h
include/gssapi/gssapi.h
HINTS
${
_GSSAPI_ROOT_HINTS
}
PATHS
${
_GSSAPI_ROOT_PATHS
}
)
NAMES include/gssapi.h include/gssapi/gssapi.h
HINTS
${
_GSSAPI_ROOT_HINTS
}
PATHS
${
_GSSAPI_ROOT_PATHS
}
)
mark_as_advanced
(
GSSAPI_ROOT_DIR
)
if
(
UNIX
)
if
(
UNIX
)
find_program
(
KRB5_CONFIG
NAMES
krb5-config
PATHS
${
GSSAPI_ROOT_DIR
}
/bin
/opt/local/bin
)
NAMES krb5-config
PATHS
${
GSSAPI_ROOT_DIR
}
/bin /opt/local/bin
)
mark_as_advanced
(
KRB5_CONFIG
)
if
(
KRB5_CONFIG
)
if
(
KRB5_CONFIG
)
# Check if we have MIT KRB5
execute_process
(
COMMAND
${
KRB5_CONFIG
}
--vendor
RESULT_VARIABLE
_GSSAPI_VENDOR_RESULT
OUTPUT_VARIABLE
_GSSAPI_VENDOR_STRING
)
if
(
_GSSAPI_VENDOR_STRING MATCHES
".*Massachusetts.*"
)
COMMAND
${
KRB5_CONFIG
}
--vendor
RESULT_VARIABLE _GSSAPI_VENDOR_RESULT
OUTPUT_VARIABLE _GSSAPI_VENDOR_STRING
)
if
(
_GSSAPI_VENDOR_STRING MATCHES
".*Massachusetts.*"
)
set
(
GSSAPI_FLAVOR_MIT TRUE
)
else
()
execute_process
(
COMMAND
${
KRB5_CONFIG
}
--libs gssapi
RESULT_VARIABLE
_GSSAPI_LIBS_RESULT
OUTPUT_VARIABLE
_GSSAPI_LIBS_STRING
)
if
(
_GSSAPI_LIBS_STRING MATCHES
".*roken.*"
)
COMMAND
${
KRB5_CONFIG
}
--libs gssapi
RESULT_VARIABLE _GSSAPI_LIBS_RESULT
OUTPUT_VARIABLE _GSSAPI_LIBS_STRING
)
if
(
_GSSAPI_LIBS_STRING MATCHES
".*roken.*"
)
set
(
GSSAPI_FLAVOR_HEIMDAL TRUE
)
endif
()
endif
()
# Get the include dir
execute_process
(
COMMAND
${
KRB5_CONFIG
}
--cflags gssapi
RESULT_VARIABLE
_GSSAPI_INCLUDE_RESULT
OUTPUT_VARIABLE
_GSSAPI_INCLUDE_STRING
)
COMMAND
${
KRB5_CONFIG
}
--cflags gssapi
RESULT_VARIABLE _GSSAPI_INCLUDE_RESULT
OUTPUT_VARIABLE _GSSAPI_INCLUDE_STRING
)
string
(
REGEX REPLACE
"(
\r
?
\n
)+$"
""
_GSSAPI_INCLUDE_STRING
"
${
_GSSAPI_INCLUDE_STRING
}
"
)
string
(
REGEX REPLACE
" *-I"
""
_GSSAPI_INCLUDEDIR
"
${
_GSSAPI_INCLUDE_STRING
}
"
)
endif
()
if
(
NOT GSSAPI_FLAVOR_MIT AND NOT GSSAPI_FLAVOR_HEIMDAL
)
if
(
NOT GSSAPI_FLAVOR_MIT AND NOT GSSAPI_FLAVOR_HEIMDAL
)
# Check for HEIMDAL
find_package
(
PkgConfig
)
if
(
PKG_CONFIG_FOUND
)
if
(
PKG_CONFIG_FOUND
)
pkg_check_modules
(
_GSSAPI heimdal-gssapi
)
endif
(
PKG_CONFIG_FOUND
)
endif
(
)
if
(
_GSSAPI_FOUND
)
if
(
_GSSAPI_FOUND
)
set
(
GSSAPI_FLAVOR_HEIMDAL TRUE
)
else
()
find_path
(
_GSSAPI_ROKEN
NAMES
roken.h
PATHS
${
GSSAPI_ROOT_DIR
}
/include
${
_GSSAPI_INCLUDEDIR
}
)
if
(
_GSSAPI_ROKEN
)
NAMES roken.h
PATHS
${
GSSAPI_ROOT_DIR
}
/include
${
_GSSAPI_INCLUDEDIR
}
)
if
(
_GSSAPI_ROKEN
)
set
(
GSSAPI_FLAVOR_HEIMDAL TRUE
)
endif
()
endif
()
endif
()
endif
(
UNIX
)
endif
()
endif
()
find_path
(
GSSAPI_INCLUDE_DIR
NAMES
gssapi.h
gssapi/gssapi.h
PATHS
${
GSSAPI_ROOT_DIR
}
/include
${
_GSSAPI_INCLUDEDIR
}
)
if
(
GSSAPI_FLAVOR_MIT
)
NAMES gssapi.h gssapi/gssapi.h
PATHS
${
GSSAPI_ROOT_DIR
}
/include
${
_GSSAPI_INCLUDEDIR
}
)
if
(
GSSAPI_FLAVOR_MIT
)
find_library
(
GSSAPI_LIBRARY
NAMES
gssapi_krb5
PATHS
${
GSSAPI_ROOT_DIR
}
/lib
${
_GSSAPI_LIBDIR
}
)
NAMES gssapi_krb5
PATHS
${
GSSAPI_ROOT_DIR
}
/lib
${
_GSSAPI_LIBDIR
}
)
find_library
(
KRB5_LIBRARY
NAMES
krb5
PATHS
${
GSSAPI_ROOT_DIR
}
/lib
${
_GSSAPI_LIBDIR
}
)
NAMES krb5
PATHS
${
GSSAPI_ROOT_DIR
}
/lib
${
_GSSAPI_LIBDIR
}
)
find_library
(
K5CRYPTO_LIBRARY
NAMES
k5crypto
PATHS
${
GSSAPI_ROOT_DIR
}
/lib
${
_GSSAPI_LIBDIR
}
)
NAMES k5crypto
PATHS
${
GSSAPI_ROOT_DIR
}
/lib
${
_GSSAPI_LIBDIR
}
)
find_library
(
COM_ERR_LIBRARY
NAMES
com_err
PATHS
${
GSSAPI_ROOT_DIR
}
/lib
${
_GSSAPI_LIBDIR
}
)
if
(
GSSAPI_LIBRARY
)
set
(
GSSAPI_LIBRARIES
${
GSSAPI_LIBRARIES
}
${
GSSAPI_LIBRARY
}
)
endif
(
GSSAPI_LIBRARY
)
if
(
KRB5_LIBRARY
)
set
(
GSSAPI_LIBRARIES
${
GSSAPI_LIBRARIES
}
${
KRB5_LIBRARY
}
)
endif
(
KRB5_LIBRARY
)
if
(
K5CRYPTO_LIBRARY
)
set
(
GSSAPI_LIBRARIES
${
GSSAPI_LIBRARIES
}
${
K5CRYPTO_LIBRARY
}
)
endif
(
K5CRYPTO_LIBRARY
)
if
(
COM_ERR_LIBRARY
)
set
(
GSSAPI_LIBRARIES
${
GSSAPI_LIBRARIES
}
${
COM_ERR_LIBRARY
}
)
endif
(
COM_ERR_LIBRARY
)
endif
(
GSSAPI_FLAVOR_MIT
)
if
(
GSSAPI_FLAVOR_HEIMDAL
)
NAMES com_err
PATHS
${
GSSAPI_ROOT_DIR
}
/lib
${
_GSSAPI_LIBDIR
}
)
if
(
GSSAPI_LIBRARY
)
set
(
GSSAPI_LIBRARIES
${
GSSAPI_LIBRARIES
}
${
GSSAPI_LIBRARY
}
)
endif
()
if
(
KRB5_LIBRARY
)
set
(
GSSAPI_LIBRARIES
${
GSSAPI_LIBRARIES
}
${
KRB5_LIBRARY
}
)
endif
()
if
(
K5CRYPTO_LIBRARY
)
set
(
GSSAPI_LIBRARIES
${
GSSAPI_LIBRARIES
}
${
K5CRYPTO_LIBRARY
}
)
endif
()
if
(
COM_ERR_LIBRARY
)
set
(
GSSAPI_LIBRARIES
${
GSSAPI_LIBRARIES
}
${
COM_ERR_LIBRARY
}
)
endif
()
endif
()
if
(
GSSAPI_FLAVOR_HEIMDAL
)
find_library
(
GSSAPI_LIBRARY
NAMES
gssapi
PATHS
${
GSSAPI_ROOT_DIR
}
/lib
${
_GSSAPI_LIBDIR
}
)
NAMES gssapi
PATHS
${
GSSAPI_ROOT_DIR
}
/lib
${
_GSSAPI_LIBDIR
}
)
find_library
(
KRB5_LIBRARY
NAMES
krb5
PATHS
${
GSSAPI_ROOT_DIR
}
/lib
${
_GSSAPI_LIBDIR
}
)
NAMES krb5
PATHS
${
GSSAPI_ROOT_DIR
}
/lib
${
_GSSAPI_LIBDIR
}
)
find_library
(
HCRYPTO_LIBRARY
NAMES
hcrypto
PATHS
${
GSSAPI_ROOT_DIR
}
/lib
${
_GSSAPI_LIBDIR
}
)
NAMES hcrypto
PATHS
${
GSSAPI_ROOT_DIR
}
/lib
${
_GSSAPI_LIBDIR
}
)
find_library
(
COM_ERR_LIBRARY
NAMES
com_err
PATHS
${
GSSAPI_ROOT_DIR
}
/lib
${
_GSSAPI_LIBDIR
}
)
NAMES com_err
PATHS
${
GSSAPI_ROOT_DIR
}
/lib
${
_GSSAPI_LIBDIR
}
)
find_library
(
HEIMNTLM_LIBRARY
NAMES
heimntlm
PATHS
${
GSSAPI_ROOT_DIR
}
/lib
${
_GSSAPI_LIBDIR
}
)
NAMES heimntlm
PATHS
${
GSSAPI_ROOT_DIR
}
/lib
${
_GSSAPI_LIBDIR
}
)
find_library
(
HX509_LIBRARY
NAMES
hx509
PATHS
${
GSSAPI_ROOT_DIR
}
/lib
${
_GSSAPI_LIBDIR
}
)
NAMES hx509
PATHS
${
GSSAPI_ROOT_DIR
}
/lib
${
_GSSAPI_LIBDIR
}
)
find_library
(
ASN1_LIBRARY
NAMES
asn1
PATHS
${
GSSAPI_ROOT_DIR
}
/lib
${
_GSSAPI_LIBDIR
}
)
NAMES asn1
PATHS
${
GSSAPI_ROOT_DIR
}
/lib
${
_GSSAPI_LIBDIR
}
)
find_library
(
WIND_LIBRARY
NAMES
wind
PATHS
${
GSSAPI_ROOT_DIR
}
/lib
${
_GSSAPI_LIBDIR
}
)
NAMES wind
PATHS
${
GSSAPI_ROOT_DIR
}
/lib
${
_GSSAPI_LIBDIR
}
)
find_library
(
ROKEN_LIBRARY
NAMES
roken
PATHS
${
GSSAPI_ROOT_DIR
}
/lib
${
_GSSAPI_LIBDIR
}
)
if
(
GSSAPI_LIBRARY
)
set
(
GSSAPI_LIBRARIES
${
GSSAPI_LIBRARIES
}
${
GSSAPI_LIBRARY
}
)
endif
(
GSSAPI_LIBRARY
)
if
(
KRB5_LIBRARY
)
set
(
GSSAPI_LIBRARIES
${
GSSAPI_LIBRARIES
}
${
KRB5_LIBRARY
}
)
endif
(
KRB5_LIBRARY
)
if
(
HCRYPTO_LIBRARY
)
set
(
GSSAPI_LIBRARIES
${
GSSAPI_LIBRARIES
}
${
HCRYPTO_LIBRARY
}
)
endif
(
HCRYPTO_LIBRARY
)
if
(
COM_ERR_LIBRARY
)
set
(
GSSAPI_LIBRARIES
${
GSSAPI_LIBRARIES
}
${
COM_ERR_LIBRARY
}
)
endif
(
COM_ERR_LIBRARY
)
if
(
HEIMNTLM_LIBRARY
)
set
(
GSSAPI_LIBRARIES
${
GSSAPI_LIBRARIES
}
${
HEIMNTLM_LIBRARY
}
)
endif
(
HEIMNTLM_LIBRARY
)
if
(
HX509_LIBRARY
)
set
(
GSSAPI_LIBRARIES
${
GSSAPI_LIBRARIES
}
${
HX509_LIBRARY
}
)
endif
(
HX509_LIBRARY
)
if
(
ASN1_LIBRARY
)
set
(
GSSAPI_LIBRARIES
${
GSSAPI_LIBRARIES
}
${
ASN1_LIBRARY
}
)
endif
(
ASN1_LIBRARY
)
if
(
WIND_LIBRARY
)
set
(
GSSAPI_LIBRARIES
${
GSSAPI_LIBRARIES
}
${
WIND_LIBRARY
}
)
endif
(
WIND_LIBRARY
)
if
(
ROKEN_LIBRARY
)
set
(
GSSAPI_LIBRARIES
${
GSSAPI_LIBRARIES
}
${
WIND_LIBRARY
}
)
endif
(
ROKEN_LIBRARY
)
endif
(
GSSAPI_FLAVOR_HEIMDAL
)
NAMES roken
PATHS
${
GSSAPI_ROOT_DIR
}
/lib
${
_GSSAPI_LIBDIR
}
)
if
(
GSSAPI_LIBRARY
)
set
(
GSSAPI_LIBRARIES
${
GSSAPI_LIBRARIES
}
${
GSSAPI_LIBRARY
}
)
endif
()
if
(
KRB5_LIBRARY
)
set
(
GSSAPI_LIBRARIES
${
GSSAPI_LIBRARIES
}
${
KRB5_LIBRARY
}
)
endif
()
if
(
HCRYPTO_LIBRARY
)
set
(
GSSAPI_LIBRARIES
${
GSSAPI_LIBRARIES
}
${
HCRYPTO_LIBRARY
}
)
endif
()
if
(
COM_ERR_LIBRARY
)
set
(
GSSAPI_LIBRARIES
${
GSSAPI_LIBRARIES
}
${
COM_ERR_LIBRARY
}
)
endif
()
if
(
HEIMNTLM_LIBRARY
)
set
(
GSSAPI_LIBRARIES
${
GSSAPI_LIBRARIES
}
${
HEIMNTLM_LIBRARY
}
)
endif
()
if
(
HX509_LIBRARY
)
set
(
GSSAPI_LIBRARIES
${
GSSAPI_LIBRARIES
}
${
HX509_LIBRARY
}
)
endif
()
if
(
ASN1_LIBRARY
)
set
(
GSSAPI_LIBRARIES
${
GSSAPI_LIBRARIES
}
${
ASN1_LIBRARY
}
)
endif
()
if
(
WIND_LIBRARY
)
set
(
GSSAPI_LIBRARIES
${
GSSAPI_LIBRARIES
}
${
WIND_LIBRARY
}
)
endif
()
if
(
ROKEN_LIBRARY
)
set
(
GSSAPI_LIBRARIES
${
GSSAPI_LIBRARIES
}
${
WIND_LIBRARY
}
)
endif
()
endif
()
include
(
FindPackageHandleStandardArgs
)
find_package_handle_standard_args
(
GSSAPI DEFAULT_MSG GSSAPI_LIBRARIES GSSAPI_INCLUDE_DIR
)
if
(
GSSAPI_INCLUDE_DIRS AND GSSAPI_LIBRARIES
)
if
(
GSSAPI_INCLUDE_DIRS AND GSSAPI_LIBRARIES
)
set
(
GSSAPI_FOUND TRUE
)
endif
(
GSSAPI_INCLUDE_DIRS AND GSSAPI_LIBRARIES
)
endif
(
GSSAPI_INCLUDE_DIRS AND GSSAPI_LIBRARIES
)
# show the GSSAPI_INCLUDE_DIRS and GSSAPI_LIBRARIES variables only in the advanced view
mark_as_advanced
(
GSSAPI_INCLUDE_DIRS GSSAPI_LIBRARIES
)
cmake/FindGSSFramework.cmake
View file @
c3fec456
...
...
@@ -7,21 +7,21 @@
# GSSFRAMEWORK_LDFLAGS
#
FIND_PATH
(
GSSFRAMEWORK_INCLUDE_DIR NAMES GSS.h
)
FIND_LIBRARY
(
GSSFRAMEWORK_LIBRARIES NAMES GSS
)
IF
(
GSSFRAMEWORK_INCLUDE_DIR AND GSSFRAMEWORK_LIBRARIES
)
IF
(
NOT CoreFoundation_FIND_QUIETLY
)
MESSAGE
(
STATUS
"Found GSS.framework
${
GSSFRAMEWORK_LIBRARIES
}
"
)
ENDIF
()
SET
(
GSSFRAMEWORK_FOUND TRUE
)
SET
(
GSSFRAMEWORK_LDFLAGS
"-framework GSS"
)
ENDIF
()
find_path
(
GSSFRAMEWORK_INCLUDE_DIR NAMES GSS.h
)
find_library
(
GSSFRAMEWORK_LIBRARIES NAMES GSS
)
if
(
GSSFRAMEWORK_INCLUDE_DIR AND GSSFRAMEWORK_LIBRARIES
)
if
(
NOT CoreFoundation_FIND_QUIETLY
)
message
(
STATUS
"Found GSS.framework
${
GSSFRAMEWORK_LIBRARIES
}
"
)
endif
()
set
(
GSSFRAMEWORK_FOUND TRUE
)
set
(
GSSFRAMEWORK_LDFLAGS
"-framework GSS"
)
endif
()
IF
(
GSS_FIND_REQUIRED AND NOT GSSFRAMEWORK_FOUND
)
MESSAGE
(
FATAL_ERROR
"CoreFoundation not found"
)
ENDIF
()
if
(
GSS_FIND_REQUIRED AND NOT GSSFRAMEWORK_FOUND
)
message
(
FATAL_ERROR
"CoreFoundation not found"
)
endif
()
MARK_AS_ADVANCED
(
mark_as_advanced
(
GSSFRAMEWORK_INCLUDE_DIR
GSSFRAMEWORK_LIBRARIES
GSSFRAMEWORK_LDFLAGS
...
...
cmake/FindHTTPParser.cmake
View file @
c3fec456
...
...
@@ -10,30 +10,30 @@
# HTTP_PARSER_VERSION_STRING - the version of http-parser found
# Find the header and library
FIND_PATH
(
HTTP_PARSER_INCLUDE_DIR NAMES http_parser.h
)
FIND_LIBRARY
(
HTTP_PARSER_LIBRARY NAMES http_parser libhttp_parser
)
find_path
(
HTTP_PARSER_INCLUDE_DIR NAMES http_parser.h
)
find_library
(
HTTP_PARSER_LIBRARY NAMES http_parser libhttp_parser
)
# Found the header, read version
if
(
HTTP_PARSER_INCLUDE_DIR AND EXISTS
"
${
HTTP_PARSER_INCLUDE_DIR
}
/http_parser.h"
)
FILE
(
READ
"
${
HTTP_PARSER_INCLUDE_DIR
}
/http_parser.h"
HTTP_PARSER_H
)
IF
(
HTTP_PARSER_H
)
STRING
(
REGEX REPLACE
".*#define[
\t
]+HTTP_PARSER_VERSION_MAJOR[
\t
]+([0-9]+).*"
"
\\
1"
HTTP_PARSER_VERSION_MAJOR
"
${
HTTP_PARSER_H
}
"
)
STRING
(
REGEX REPLACE
".*#define[
\t
]+HTTP_PARSER_VERSION_MINOR[
\t
]+([0-9]+).*"
"
\\
1"
HTTP_PARSER_VERSION_MINOR
"
${
HTTP_PARSER_H
}
"
)
SET
(
HTTP_PARSER_VERSION_STRING
"
${
HTTP_PARSER_VERSION_MAJOR
}
.
${
HTTP_PARSER_VERSION_MINOR
}
"
)
ENDIF
()
UNSET
(
HTTP_PARSER_H
)
ENDIF
()
if
(
HTTP_PARSER_INCLUDE_DIR AND EXISTS
"
${
HTTP_PARSER_INCLUDE_DIR
}
/http_parser.h"
)
file
(
READ
"
${
HTTP_PARSER_INCLUDE_DIR
}
/http_parser.h"
HTTP_PARSER_H
)
if
(
HTTP_PARSER_H
)
string
(
REGEX REPLACE
".*#define[
\t
]+HTTP_PARSER_VERSION_MAJOR[
\t
]+([0-9]+).*"
"
\\
1"
HTTP_PARSER_VERSION_MAJOR
"
${
HTTP_PARSER_H
}
"
)
string
(
REGEX REPLACE
".*#define[
\t
]+HTTP_PARSER_VERSION_MINOR[
\t
]+([0-9]+).*"
"
\\
1"
HTTP_PARSER_VERSION_MINOR
"
${
HTTP_PARSER_H
}
"
)
set
(
HTTP_PARSER_VERSION_STRING
"
${
HTTP_PARSER_VERSION_MAJOR
}
.
${
HTTP_PARSER_VERSION_MINOR
}
"
)
endif
()
unset
(
HTTP_PARSER_H
)
endif
()
# Handle the QUIETLY and REQUIRED arguments and set HTTP_PARSER_FOUND
# to TRUE if all listed variables are TRUE
INCLUDE
(
FindPackageHandleStandardArgs
)
FIND_PACKAGE_HANDLE_STANDARD_ARGS
(
HTTP_Parser REQUIRED_VARS HTTP_PARSER_INCLUDE_DIR HTTP_PARSER_LIBRARY
)
include
(
FindPackageHandleStandardArgs
)
find_package_handle_standard_args
(
HTTP_Parser REQUIRED_VARS HTTP_PARSER_INCLUDE_DIR HTTP_PARSER_LIBRARY
)
# Hide advanced variables
MARK_AS_ADVANCED
(
HTTP_PARSER_INCLUDE_DIR HTTP_PARSER_LIBRARY
)
mark_as_advanced
(
HTTP_PARSER_INCLUDE_DIR HTTP_PARSER_LIBRARY
)
# Set standard variables
IF
(
HTTP_PARSER_FOUND
)
SET
(
HTTP_PARSER_LIBRARIES
${
HTTP_PARSER_LIBRARY
}
)
if
(
HTTP_PARSER_FOUND
)
set
(
HTTP_PARSER_LIBRARIES
${
HTTP_PARSER_LIBRARY
}
)
set
(
HTTP_PARSER_INCLUDE_DIRS
${
HTTP_PARSER_INCLUDE_DIR
}
)
ENDIF
()
endif
()
cmake/FindIconv.cmake
View file @
c3fec456
...
...
@@ -6,40 +6,40 @@
# ICONV_LIBRARIES - Link these to use Iconv
#
IF
(
ICONV_INCLUDE_DIR AND ICONV_LIBRARIES
)
if
(
ICONV_INCLUDE_DIR AND ICONV_LIBRARIES
)
# Already in cache, be silent
SET
(
ICONV_FIND_QUIETLY TRUE
)
ENDIF
()
set
(
ICONV_FIND_QUIETLY TRUE
)
endif
()
FIND_PATH
(
ICONV_INCLUDE_DIR iconv.h
)
CHECK_FUNCTION_EXISTS
(
iconv_open libc_has_iconv
)
FIND_LIBRARY
(
iconv_lib NAMES iconv libiconv libiconv-2 c
)
find_path
(
ICONV_INCLUDE_DIR iconv.h
)
check_function_exists
(
iconv_open libc_has_iconv
)
find_library
(
iconv_lib NAMES iconv libiconv libiconv-2 c
)
IF
(
ICONV_INCLUDE_DIR AND libc_has_iconv
)
SET
(
ICONV_FOUND TRUE
)
SET
(
ICONV_LIBRARIES
""
)
IF
(
NOT ICONV_FIND_QUIETLY
)
MESSAGE
(
STATUS
"Found Iconv: provided by libc"
)
ENDIF
(
NOT ICONV_FIND_QUIETLY
)
ELSEIF
(
ICONV_INCLUDE_DIR AND iconv_lib
)
SET
(
ICONV_FOUND TRUE
)
if
(
ICONV_INCLUDE_DIR AND libc_has_iconv
)
set
(
ICONV_FOUND TRUE
)
set
(
ICONV_LIBRARIES
""
)
if
(
NOT ICONV_FIND_QUIETLY
)
message
(
STATUS
"Found Iconv: provided by libc"
)
endif
(
NOT ICONV_FIND_QUIETLY
)
elseif
(
ICONV_INCLUDE_DIR AND iconv_lib
)
set
(
ICONV_FOUND TRUE
)
# split iconv into -L and -l linker options, so we can
# set them for pkg-config
GET_FILENAME_COMPONENT
(
iconv_path
${
iconv_lib
}
PATH
)
GET_FILENAME_COMPONENT
(
iconv_name
${
iconv_lib
}
NAME_WE
)
STRING
(
REGEX REPLACE
"^lib"
""
iconv_name
${
iconv_name
}
)
SET
(
ICONV_LIBRARIES
"-L
${
iconv_path
}
-l
${
iconv_name
}
"
)
get_filename_component
(
iconv_path
${
iconv_lib
}
PATH
)
get_filename_component
(
iconv_name
${
iconv_lib
}
NAME_WE
)
string
(
REGEX REPLACE
"^lib"
""
iconv_name
${
iconv_name
}
)
set
(
ICONV_LIBRARIES
"-L
${
iconv_path
}
-l
${
iconv_name
}
"
)
IF
(
NOT ICONV_FIND_QUIETLY
)
MESSAGE
(
STATUS
"Found Iconv:
${
ICONV_LIBRARIES
}
"
)
ENDIF
(
NOT ICONV_FIND_QUIETLY
)
ELSE
()
IF
(
Iconv_FIND_REQUIRED
)
MESSAGE
(
FATAL_ERROR
"Could not find Iconv"
)
ENDIF
(
Iconv_FIND_REQUIRED
)
ENDIF
()
if
(
NOT ICONV_FIND_QUIETLY
)
message
(
STATUS
"Found Iconv:
${
ICONV_LIBRARIES
}
"
)
endif
(
)
else
()
if
(
Iconv_FIND_REQUIRED
)
message
(
FATAL_ERROR
"Could not find Iconv"
)
endif
(
Iconv_FIND_REQUIRED
)
endif
()
MARK_AS_ADVANCED
(
mark_as_advanced
(
ICONV_INCLUDE_DIR
ICONV_LIBRARIES
)
cmake/FindLibSSH2.cmake
View file @
c3fec456
...
...
@@ -2,12 +2,12 @@
# LIBSSH2_INCLUDE_DIR - the libssh2 include directory
# LIBSSH2_LIBRARY - the libssh2 library name
FIND_PATH
(
LIBSSH2_INCLUDE_DIR libssh2.h
)
find_path
(
LIBSSH2_INCLUDE_DIR libssh2.h
)
FIND_LIBRARY
(
LIBSSH2_LIBRARY NAMES ssh2 libssh2
)
find_library
(
LIBSSH2_LIBRARY NAMES ssh2 libssh2
)
INCLUDE
(
FindPackageHandleStandardArgs
)
include
(
FindPackageHandleStandardArgs
)
find_package_handle_standard_args
(
LibSSH2
REQUIRED_VARS LIBSSH2_LIBRARY LIBSSH2_INCLUDE_DIR
)
MARK_AS_ADVANCED
(
LIBSSH2_INCLUDE_DIR LIBSSH2_LIBRARY
)
mark_as_advanced
(
LIBSSH2_INCLUDE_DIR LIBSSH2_LIBRARY
)
cmake/FindPCRE.cmake
View file @
c3fec456
...
...
@@ -16,23 +16,23 @@
# PCRE_FOUND - True if pcre found.
# Look for the header file.
FIND_PATH
(
PCRE_INCLUDE_DIR NAMES pcreposix.h
)
find_path
(
PCRE_INCLUDE_DIR NAMES pcreposix.h
)
# Look for the library.
FIND_LIBRARY
(
PCRE_LIBRARY NAMES pcre
)
FIND_LIBRARY
(
PCRE_POSIX_LIBRARY NAMES pcreposix
)
find_library
(
PCRE_LIBRARY NAMES pcre
)
find_library
(
PCRE_POSIX_LIBRARY NAMES pcreposix
)
# Handle the QUIETLY and REQUIRED arguments and set PCRE_FOUND to TRUE if all listed variables are TRUE.
INCLUDE
(
FindPackageHandleStandardArgs
)
FIND_PACKAGE_HANDLE_STANDARD_ARGS
(
PCRE DEFAULT_MSG PCRE_LIBRARY PCRE_POSIX_LIBRARY PCRE_INCLUDE_DIR
)
include
(
FindPackageHandleStandardArgs
)
find_package_handle_standard_args
(
PCRE DEFAULT_MSG PCRE_LIBRARY PCRE_POSIX_LIBRARY PCRE_INCLUDE_DIR
)
# Copy the results to the output variables.
IF
(
PCRE_FOUND
)
SET
(
PCRE_LIBRARIES
${
PCRE_LIBRARY
}
${
PCRE_POSIX_LIBRARY
}
)
SET
(
PCRE_INCLUDE_DIRS
${
PCRE_INCLUDE_DIR
}
)
ELSE
(
PCRE_FOUND
)
SET
(
PCRE_LIBRARIES
)
SET
(
PCRE_INCLUDE_DIRS
)
ENDIF
(
PCRE_FOUND
)
if
(
PCRE_FOUND
)
set
(
PCRE_LIBRARIES
${
PCRE_LIBRARY
}
${
PCRE_POSIX_LIBRARY
}
)
set
(
PCRE_INCLUDE_DIRS
${
PCRE_INCLUDE_DIR
}
)
else
(
PCRE_FOUND
)
set
(
PCRE_LIBRARIES
)
set
(
PCRE_INCLUDE_DIRS
)
endif
(
)
MARK_AS_ADVANCED
(
PCRE_INCLUDE_DIRS PCRE_LIBRARIES
)
mark_as_advanced
(
PCRE_INCLUDE_DIRS PCRE_LIBRARIES
)
cmake/FindPCRE2.cmake
View file @
c3fec456
...
...
@@ -16,22 +16,22 @@
# PCRE2_FOUND - True if pcre found.
# Look for the header file.
FIND_PATH
(
PCRE2_INCLUDE_DIR NAMES pcre2posix.h
)
find_path
(
PCRE2_INCLUDE_DIR NAMES pcre2posix.h
)
# Look for the library.
FIND_LIBRARY
(
PCRE2_LIBRARY NAMES pcre2-8
)
find_library
(
PCRE2_LIBRARY NAMES pcre2-8
)
# Handle the QUIETLY and REQUIRED arguments and set PCRE2_FOUND to TRUE if all listed variables are TRUE.
INCLUDE
(
FindPackageHandleStandardArgs
)
FIND_PACKAGE_HANDLE_STANDARD_ARGS
(
PCRE2 DEFAULT_MSG PCRE2_LIBRARY PCRE2_INCLUDE_DIR
)
include
(
FindPackageHandleStandardArgs
)
find_package_handle_standard_args
(
PCRE2 DEFAULT_MSG PCRE2_LIBRARY PCRE2_INCLUDE_DIR
)
# Copy the results to the output variables.
IF
(
PCRE2_FOUND
)
SET
(
PCRE2_LIBRARIES
${
PCRE2_LIBRARY
}
)
SET
(
PCRE2_INCLUDE_DIRS
${
PCRE2_INCLUDE_DIR
}
)
ELSE
(
PCRE2_FOUND
)
SET
(
PCRE2_LIBRARIES
)
SET
(
PCRE2_INCLUDE_DIRS
)
ENDIF
(
PCRE2_FOUND
)
if
(
PCRE2_FOUND
)
set
(
PCRE2_LIBRARIES
${
PCRE2_LIBRARY
}
)
set
(
PCRE2_INCLUDE_DIRS
${
PCRE2_INCLUDE_DIR
}
)
else
(
PCRE2_FOUND
)
set
(
PCRE2_LIBRARIES
)
set
(
PCRE2_INCLUDE_DIRS
)
endif
(
)
MARK_AS_ADVANCED
(
PCRE2_INCLUDE_DIRS PCRE2_LIBRARIES
)
mark_as_advanced
(
PCRE2_INCLUDE_DIRS PCRE2_LIBRARIES
)
cmake/FindPkgLibraries.cmake
View file @
c3fec456
INCLUDE
(
FindPkgConfig
)
include
(
FindPkgConfig
)
# This function will find and set up a pkg-config based module.
# If a pc-file was found, it will resolve library paths to
# absolute paths. Furthermore, the function will automatically
# fall back to use static libraries in case no dynamic libraries
# were found.
FUNCTION
(
FIND_PKGLIBRARIES prefix package
)
PKG_CHECK_MODULES
(
${
prefix
}
${
package
}
)
IF
(
NOT
${
prefix
}
_FOUND
)
RETURN
()
ENDIF
()
function
(
FIND_PKGLIBRARIES prefix package
)
pkg_check_modules
(
${
prefix
}
${
package
}
)
if
(
NOT
${
prefix
}
_FOUND
)
return
()
endif
()
FOREACH
(
LIBRARY
${${
prefix
}
_LIBRARIES
}
)
FIND_LIBRARY
(
${
LIBRARY
}
_RESOLVED
${
LIBRARY
}
PATHS
${${
prefix
}
_LIBRARY_DIRS
}
)
IF
(
${${
LIBRARY
}
_RESOLVED
}
STREQUAL
"
${
LIBRARY
}
_RESOLVED-NOTFOUND"
)
MESSAGE
(
FATAL_ERROR
"could not resolve
${
LIBRARY
}
"
)
ENDIF
()
LIST
(
APPEND RESOLVED_LIBRARIES
${${
LIBRARY
}
_RESOLVED
}
)
ENDFOREACH
(
LIBRARY
)
foreach
(
LIBRARY
${${
prefix
}
_LIBRARIES
}
)
find_library
(
${
LIBRARY
}
_RESOLVED
${
LIBRARY
}
PATHS
${${
prefix
}
_LIBRARY_DIRS
}
)
if
(
${${
LIBRARY
}
_RESOLVED
}
STREQUAL
"
${
LIBRARY
}
_RESOLVED-NOTFOUND"
)
message
(
FATAL_ERROR
"could not resolve
${
LIBRARY
}
"
)
endif
()
list
(
APPEND RESOLVED_LIBRARIES
${${
LIBRARY
}
_RESOLVED
}
)
endforeach
(
)
SET
(
${
prefix
}
_FOUND 1 PARENT_SCOPE
)
SET
(
${
prefix
}
_LIBRARIES
${
RESOLVED_LIBRARIES
}
PARENT_SCOPE
)
SET
(
${
prefix
}
_INCLUDE_DIRS
${${
prefix
}
_INCLUDE_DIRS
}
PARENT_SCOPE
)
SET
(
${
prefix
}
_LDFLAGS
${${
prefix
}
_LDFLAGS
}
PARENT_SCOPE
)
set
(
${
prefix
}
_FOUND 1 PARENT_SCOPE
)
set
(
${
prefix
}
_LIBRARIES
${
RESOLVED_LIBRARIES
}
PARENT_SCOPE
)
set
(
${
prefix
}
_INCLUDE_DIRS
${${
prefix
}
_INCLUDE_DIRS
}
PARENT_SCOPE
)
set
(
${
prefix
}
_LDFLAGS
${${
prefix
}
_LDFLAGS
}
PARENT_SCOPE
)
MESSAGE
(
STATUS
" Resolved libraries:
${
RESOLVED_LIBRARIES
}
"
)
ENDFUNCTION
()
message
(
STATUS
" Resolved libraries:
${
RESOLVED_LIBRARIES
}
"
)
endfunction
()
cmake/FindSecurity.cmake
View file @
c3fec456
...
...
@@ -7,22 +7,22 @@
# SECURITY_HAS_SSLCREATECONTEXT
#
FIND_PATH
(
SECURITY_INCLUDE_DIR NAMES Security/Security.h
)
FIND_LIBRARY
(
SECURITY_LIBRARIES NAMES Security
)
IF
(
SECURITY_INCLUDE_DIR AND SECURITY_LIBRARIES
)
IF
(
NOT Security_FIND_QUIETLY
)
MESSAGE
(
STATUS
"Found Security
${
SECURITY_LIBRARIES
}
"
)
ENDIF
()
SET
(
SECURITY_FOUND TRUE
)
SET
(
SECURITY_LDFLAGS
"-framework Security"
)
CHECK_LIBRARY_EXISTS
(
"
${
SECURITY_LIBRARIES
}
"
SSLCreateContext
"Security/SecureTransport.h"
SECURITY_HAS_SSLCREATECONTEXT
)
ENDIF
()
find_path
(
SECURITY_INCLUDE_DIR NAMES Security/Security.h
)
find_library
(
SECURITY_LIBRARIES NAMES Security
)
if
(
SECURITY_INCLUDE_DIR AND SECURITY_LIBRARIES
)
if
(
NOT Security_FIND_QUIETLY
)
message
(
STATUS
"Found Security
${
SECURITY_LIBRARIES
}
"
)
endif
()
set
(
SECURITY_FOUND TRUE
)
set
(
SECURITY_LDFLAGS
"-framework Security"
)
check_library_exists
(
"
${
SECURITY_LIBRARIES
}
"
SSLCreateContext
"Security/SecureTransport.h"
SECURITY_HAS_SSLCREATECONTEXT
)
endif
()
IF
(
Security_FIND_REQUIRED AND NOT SECURITY_FOUND
)
MESSAGE
(
FATAL_ERROR
"Security not found"
)
ENDIF
()
if
(
Security_FIND_REQUIRED AND NOT SECURITY_FOUND
)
message
(
FATAL_ERROR
"Security not found"
)
endif
()
MARK_AS_ADVANCED
(
mark_as_advanced
(
SECURITY_INCLUDE_DIR
SECURITY_LIBRARIES
)
cmake/Findfutimens.cmake
View file @
c3fec456
INCLUDE
(
EnableWarnings
)
include
(
EnableWarnings
)
IF
(
APPLE
)
if
(
APPLE
)
# We cannot simply CHECK_FUNCTION_EXISTS on macOS because
# MACOSX_DEPLOYMENT_TARGET may be set to a version in the past
# that doesn't have futimens. Instead we need to enable warnings
# as errors, then check for the symbol existing in `sys/stat.h`,
# then reset warnings as errors.
ENABLE_WARNINGS
(
error
)
CHECK_SYMBOL_EXISTS
(
futimens sys/stat.h HAVE_FUTIMENS
)
DISABLE_WARNINGS
(
error
)
ELSE
()
CHECK_FUNCTION_EXISTS
(
futimens HAVE_FUTIMENS
)
ENDIF
()
enable_warnings
(
error
)
check_symbol_exists
(
futimens sys/stat.h HAVE_FUTIMENS
)
disable_warnings
(
error
)
else
()
check_function_exists
(
futimens HAVE_FUTIMENS
)
endif
()
cmake/FindmbedTLS.cmake
View file @
c3fec456
...
...
@@ -13,81 +13,74 @@
# Hint
# MBEDTLS_ROOT_DIR can be pointed to a local mbedTLS installation.
SET
(
_MBEDTLS_ROOT_HINTS
set
(
_MBEDTLS_ROOT_HINTS
${
MBEDTLS_ROOT_DIR
}
ENV MBEDTLS_ROOT_DIR
)
ENV MBEDTLS_ROOT_DIR
)
SET
(
_MBEDTLS_ROOT_HINTS_AND_PATHS
set
(
_MBEDTLS_ROOT_HINTS_AND_PATHS
HINTS
${
_MBEDTLS_ROOT_HINTS
}
PATHS
${
_MBEDTLS_ROOT_PATHS
}
)
PATHS
${
_MBEDTLS_ROOT_PATHS
}
)
FIND_PATH
(
MBEDTLS_INCLUDE_DIR
find_path
(
MBEDTLS_INCLUDE_DIR
NAMES mbedtls/version.h
${
_MBEDTLS_ROOT_HINTS_AND_PATHS
}
PATH_SUFFIXES include
)
PATH_SUFFIXES include
)
IF
(
MBEDTLS_INCLUDE_DIR AND MBEDTLS_LIBRARIES
)
if
(
MBEDTLS_INCLUDE_DIR AND MBEDTLS_LIBRARIES
)
# Already in cache, be silent
SET
(
MBEDTLS_FIND_QUIETLY TRUE
)
ENDIF
()
set
(
MBEDTLS_FIND_QUIETLY TRUE
)
endif
()
FIND_LIBRARY
(
MBEDTLS_LIBRARY
find_library
(
MBEDTLS_LIBRARY
NAMES mbedtls libmbedtls
${
_MBEDTLS_ROOT_HINTS_AND_PATHS
}
PATH_SUFFIXES library
)
FIND_LIBRARY
(
MBEDX509_LIBRARY
PATH_SUFFIXES library
)
find_library
(
MBEDX509_LIBRARY
NAMES mbedx509 libmbedx509
${
_MBEDTLS_ROOT_HINTS_AND_PATHS
}
PATH_SUFFIXES library
)
FIND_LIBRARY
(
MBEDCRYPTO_LIBRARY
PATH_SUFFIXES library
)
find_library
(
MBEDCRYPTO_LIBRARY
NAMES mbedcrypto libmbedcrypto
${
_MBEDTLS_ROOT_HINTS_AND_PATHS
}
PATH_SUFFIXES library
)
PATH_SUFFIXES library
)
IF
(
MBEDTLS_INCLUDE_DIR AND MBEDTLS_LIBRARY AND MBEDX509_LIBRARY AND MBEDCRYPTO_LIBRARY
)
SET
(
MBEDTLS_FOUND TRUE
)
ENDIF
()
if
(
MBEDTLS_INCLUDE_DIR AND MBEDTLS_LIBRARY AND MBEDX509_LIBRARY AND MBEDCRYPTO_LIBRARY
)
set
(
MBEDTLS_FOUND TRUE
)
endif
()
IF
(
MBEDTLS_FOUND
)
if
(
MBEDTLS_FOUND
)
# split mbedTLS into -L and -l linker options, so we can set them for pkg-config
GET_FILENAME_COMPONENT
(
MBEDTLS_LIBRARY_DIR
${
MBEDTLS_LIBRARY
}
PATH
)
GET_FILENAME_COMPONENT
(
MBEDTLS_LIBRARY_FILE
${
MBEDTLS_LIBRARY
}
NAME_WE
)
GET_FILENAME_COMPONENT
(
MBEDX509_LIBRARY_FILE
${
MBEDX509_LIBRARY
}
NAME_WE
)
GET_FILENAME_COMPONENT
(
MBEDCRYPTO_LIBRARY_FILE
${
MBEDCRYPTO_LIBRARY
}
NAME_WE
)
STRING
(
REGEX REPLACE
"^lib"
""
MBEDTLS_LIBRARY_FILE
${
MBEDTLS_LIBRARY_FILE
}
)
STRING
(
REGEX REPLACE
"^lib"
""
MBEDX509_LIBRARY_FILE
${
MBEDX509_LIBRARY_FILE
}
)
STRING
(
REGEX REPLACE
"^lib"
""
MBEDCRYPTO_LIBRARY_FILE
${
MBEDCRYPTO_LIBRARY_FILE
}
)
SET
(
MBEDTLS_LIBRARIES
"-L
${
MBEDTLS_LIBRARY_DIR
}
-l
${
MBEDTLS_LIBRARY_FILE
}
-l
${
MBEDX509_LIBRARY_FILE
}
-l
${
MBEDCRYPTO_LIBRARY_FILE
}
"
)
get_filename_component
(
MBEDTLS_LIBRARY_DIR
${
MBEDTLS_LIBRARY
}
PATH
)
get_filename_component
(
MBEDTLS_LIBRARY_FILE
${
MBEDTLS_LIBRARY
}
NAME_WE
)
get_filename_component
(
MBEDX509_LIBRARY_FILE
${
MBEDX509_LIBRARY
}
NAME_WE
)
get_filename_component
(
MBEDCRYPTO_LIBRARY_FILE
${
MBEDCRYPTO_LIBRARY
}
NAME_WE
)
string
(
REGEX REPLACE
"^lib"
""
MBEDTLS_LIBRARY_FILE
${
MBEDTLS_LIBRARY_FILE
}
)
string
(
REGEX REPLACE
"^lib"
""
MBEDX509_LIBRARY_FILE
${
MBEDX509_LIBRARY_FILE
}
)
string
(
REGEX REPLACE
"^lib"
""
MBEDCRYPTO_LIBRARY_FILE
${
MBEDCRYPTO_LIBRARY_FILE
}
)
set
(
MBEDTLS_LIBRARIES
"-L
${
MBEDTLS_LIBRARY_DIR
}
-l
${
MBEDTLS_LIBRARY_FILE
}
-l
${
MBEDX509_LIBRARY_FILE
}
-l
${
MBEDCRYPTO_LIBRARY_FILE
}
"
)
IF
(
NOT MBEDTLS_FIND_QUIETLY
)
MESSAGE
(
STATUS
"Found mbedTLS:"
)
FILE
(
READ
${
MBEDTLS_INCLUDE_DIR
}
/mbedtls/version.h MBEDTLSCONTENT
)
STRING
(
REGEX MATCH
"MBEDTLS_VERSION_STRING +
\"
[0-9|.]+
\"
"
MBEDTLSMATCH
${
MBEDTLSCONTENT
}
)
IF
(
MBEDTLSMATCH
)
STRING
(
REGEX REPLACE
"MBEDTLS_VERSION_STRING +
\"
([0-9|.]+)
\"
"
"
\\
1"
MBEDTLS_VERSION
${
MBEDTLSMATCH
}
)
MESSAGE
(
STATUS
" version
${
MBEDTLS_VERSION
}
"
)
ENDIF
(
MBEDTLSMATCH
)
MESSAGE
(
STATUS
" TLS:
${
MBEDTLS_LIBRARY
}
"
)
MESSAGE
(
STATUS
" X509:
${
MBEDX509_LIBRARY
}
"
)
MESSAGE
(
STATUS
" Crypto:
${
MBEDCRYPTO_LIBRARY
}
"
)
ENDIF
(
NOT MBEDTLS_FIND_QUIETLY
)
ELSE
(
MBEDTLS_FOUND
)
IF
(
MBEDTLS_FIND_REQUIRED
)
MESSAGE
(
FATAL_ERROR
"Could not find mbedTLS"
)
ENDIF
(
MBEDTLS_FIND_REQUIRED
)
ENDIF
(
MBEDTLS_FOUND
)
if
(
NOT MBEDTLS_FIND_QUIETLY
)
message
(
STATUS
"Found mbedTLS:"
)
file
(
READ
${
MBEDTLS_INCLUDE_DIR
}
/mbedtls/version.h MBEDTLSCONTENT
)
string
(
REGEX MATCH
"MBEDTLS_VERSION_STRING +
\"
[0-9|.]+
\"
"
MBEDTLSMATCH
${
MBEDTLSCONTENT
}
)
if
(
MBEDTLSMATCH
)
string
(
REGEX REPLACE
"MBEDTLS_VERSION_STRING +
\"
([0-9|.]+)
\"
"
"
\\
1"
MBEDTLS_VERSION
${
MBEDTLSMATCH
}
)
message
(
STATUS
" version
${
MBEDTLS_VERSION
}
"
)
endif
(
)
message
(
STATUS
" TLS:
${
MBEDTLS_LIBRARY
}
"
)
message
(
STATUS
" X509:
${
MBEDX509_LIBRARY
}
"
)
message
(
STATUS
" Crypto:
${
MBEDCRYPTO_LIBRARY
}
"
)
endif
(
)
else
(
MBEDTLS_FOUND
)
if
(
MBEDTLS_FIND_REQUIRED
)
message
(
FATAL_ERROR
"Could not find mbedTLS"
)
endif
(
)
endif
(
)
MARK_AS_ADVANCED
(
mark_as_advanced
(
MBEDTLS_INCLUDE_DIR
MBEDTLS_LIBRARY_DIR
MBEDTLS_LIBRARIES
MBEDTLS_LIBRARY
MBEDX509_LIBRARY
MBEDCRYPTO_LIBRARY
)
MBEDCRYPTO_LIBRARY
)
cmake/IdeSplitSources.cmake
View file @
c3fec456
...
...
@@ -3,20 +3,20 @@
# Visual Studio, so that you can navigate into the libgit2_tests project,
# and see the folders within the tests folder (instead of just seeing all
# source and tests in a single folder.)
FUNCTION
(
IDE_SPLIT_SOURCES target
)
IF
(
MSVC_IDE OR CMAKE_GENERATOR STREQUAL Xcode
)
GET_TARGET_PROPERTY
(
sources
${
target
}
SOURCES
)
FOREACH
(
source
${
sources
}
)
IF
(
source MATCHES
".*/"
)
STRING
(
REPLACE
${
libgit2_SOURCE_DIR
}
/
""
rel
${
source
}
)
IF
(
rel
)
STRING
(
REGEX REPLACE
"/([^/]*)$"
""
rel
${
rel
}
)
IF
(
rel
)
STRING
(
REPLACE
"/"
"
\\\\
"
rel
${
rel
}
)
SOURCE_GROUP
(
${
rel
}
FILES
${
source
}
)
ENDIF
()
ENDIF
()
ENDIF
()
ENDFOREACH
()
ENDIF
()
ENDFUNCTION
()
function
(
IDE_SPLIT_SOURCES target
)
if
(
MSVC_IDE OR CMAKE_GENERATOR STREQUAL Xcode
)
get_target_property
(
sources
${
target
}
SOURCES
)
foreach
(
source
${
sources
}
)
if
(
source MATCHES
".*/"
)
string
(
REPLACE
${
libgit2_SOURCE_DIR
}
/
""
rel
${
source
}
)
if
(
rel
)
string
(
REGEX REPLACE
"/([^/]*)$"
""
rel
${
rel
}
)
if
(
rel
)
string
(
REPLACE
"/"
"
\\\\
"
rel
${
rel
}
)
source_group
(
${
rel
}
FILES
${
source
}
)
endif
()
endif
()
endif
()
endforeach
()
endif
()
endfunction
()
cmake/PkgBuildConfig.cmake
View file @
c3fec456
cmake/SanitizeBool.cmake
View file @
c3fec456
FUNCTION
(
SanitizeBool VAR
)
STRING
(
TOLOWER
"
${${
VAR
}}
"
VALUE
)
IF
(
VALUE STREQUAL
"on"
)
SET
(
${
VAR
}
"ON"
PARENT_SCOPE
)
ELSEIF
(
VALUE STREQUAL
"yes"
)
SET
(
${
VAR
}
"ON"
PARENT_SCOPE
)
ELSEIF
(
VALUE STREQUAL
"true"
)
SET
(
${
VAR
}
"ON"
PARENT_SCOPE
)
ELSEIF
(
VALUE STREQUAL
"1"
)
SET
(
${
VAR
}
"ON"
PARENT_SCOPE
)
ELSEIF
(
VALUE STREQUAL
"off"
)
SET
(
${
VAR
}
"OFF"
PARENT_SCOPE
)
ELSEIF
(
VALUE STREQUAL
"no"
)
SET
(
${
VAR
}
"OFF"
PARENT_SCOPE
)
ELSEIF
(
VALUE STREQUAL
"false"
)
SET
(
${
VAR
}
"OFF"
PARENT_SCOPE
)
ELSEIF
(
VALUE STREQUAL
"0"
)
SET
(
${
VAR
}
"OFF"
PARENT_SCOPE
)
ENDIF
()
ENDFUNCTION
()
function
(
SanitizeBool VAR
)
string
(
TOLOWER
"
${${
VAR
}}
"
VALUE
)
if
(
VALUE STREQUAL
"on"
)
set
(
${
VAR
}
"ON"
PARENT_SCOPE
)
elseif
(
VALUE STREQUAL
"yes"
)
set
(
${
VAR
}
"ON"
PARENT_SCOPE
)
elseif
(
VALUE STREQUAL
"true"
)
set
(
${
VAR
}
"ON"
PARENT_SCOPE
)
elseif
(
VALUE STREQUAL
"1"
)
set
(
${
VAR
}
"ON"
PARENT_SCOPE
)
elseif
(
VALUE STREQUAL
"off"
)
set
(
${
VAR
}
"OFF"
PARENT_SCOPE
)
elseif
(
VALUE STREQUAL
"no"
)
set
(
${
VAR
}
"OFF"
PARENT_SCOPE
)
elseif
(
VALUE STREQUAL
"false"
)
set
(
${
VAR
}
"OFF"
PARENT_SCOPE
)
elseif
(
VALUE STREQUAL
"0"
)
set
(
${
VAR
}
"OFF"
PARENT_SCOPE
)
endif
()
endfunction
()
cmake/SelectGSSAPI.cmake
View file @
c3fec456
INCLUDE
(
SanitizeBool
)
include
(
SanitizeBool
)
# We try to find any packages our backends might use
FIND_PACKAGE
(
GSSAPI
)
IF
(
CMAKE_SYSTEM_NAME MATCHES
"Darwin"
)
INCLUDE
(
FindGSSFramework
)
ENDIF
()
find_package
(
GSSAPI
)
if
(
CMAKE_SYSTEM_NAME MATCHES
"Darwin"
)
include
(
FindGSSFramework
)
endif
()
IF
(
USE_GSSAPI
)
if
(
USE_GSSAPI
)
# Auto-select GSS backend
SanitizeB
ool
(
USE_GSSAPI
)
IF
(
USE_GSSAPI STREQUAL ON
)
IF
(
GSSFRAMEWORK_FOUND
)
SET
(
USE_GSSAPI
"GSS.framework"
)
ELSEIF
(
GSSAPI_FOUND
)
SET
(
USE_GSSAPI
"gssapi"
)
ELSE
()
MESSAGE
(
FATAL_ERROR
"Unable to autodetect a usable GSS backend."
sanitizeb
ool
(
USE_GSSAPI
)
if
(
USE_GSSAPI STREQUAL ON
)
if
(
GSSFRAMEWORK_FOUND
)
set
(
USE_GSSAPI
"GSS.framework"
)
elseif
(
GSSAPI_FOUND
)
set
(
USE_GSSAPI
"gssapi"
)
else
()
message
(
FATAL_ERROR
"Unable to autodetect a usable GSS backend."
"Please pass the backend name explicitly (-DUSE_GSS=backend)"
)
ENDIF
()
ENDIF
()
endif
()
endif
()
# Check that we can find what's required for the selected backend
IF
(
USE_GSSAPI STREQUAL
"GSS.framework"
)
IF
(
NOT GSSFRAMEWORK_FOUND
)
MESSAGE
(
FATAL_ERROR
"Asked for GSS.framework backend, but it wasn't found"
)
ENDIF
()
if
(
USE_GSSAPI STREQUAL
"GSS.framework"
)
if
(
NOT GSSFRAMEWORK_FOUND
)
message
(
FATAL_ERROR
"Asked for GSS.framework backend, but it wasn't found"
)
endif
()
LIST
(
APPEND LIBGIT2_LIBS
${
GSSFRAMEWORK_LIBRARIES
}
)
list
(
APPEND LIBGIT2_LIBS
${
GSSFRAMEWORK_LIBRARIES
}
)
SET
(
GIT_GSSFRAMEWORK 1
)
ADD_FEATURE_INFO
(
SPNEGO GIT_GSSFRAMEWORK
"SPNEGO authentication support (
${
USE_GSSAPI
}
)"
)
ELSEIF
(
USE_GSSAPI STREQUAL
"gssapi"
)
IF
(
NOT GSSAPI_FOUND
)
MESSAGE
(
FATAL_ERROR
"Asked for gssapi GSS backend, but it wasn't found"
)
ENDIF
()
set
(
GIT_GSSFRAMEWORK 1
)
add_feature_info
(
SPNEGO GIT_GSSFRAMEWORK
"SPNEGO authentication support (
${
USE_GSSAPI
}
)"
)
elseif
(
USE_GSSAPI STREQUAL
"gssapi"
)
if
(
NOT GSSAPI_FOUND
)
message
(
FATAL_ERROR
"Asked for gssapi GSS backend, but it wasn't found"
)
endif
()
LIST
(
APPEND LIBGIT2_LIBS
${
GSSAPI_LIBRARIES
}
)
list
(
APPEND LIBGIT2_LIBS
${
GSSAPI_LIBRARIES
}
)
SET
(
GIT_GSSAPI 1
)
ADD_FEATURE_INFO
(
SPNEGO GIT_GSSAPI
"SPNEGO authentication support (
${
USE_GSSAPI
}
)"
)
ELSE
()
MESSAGE
(
FATAL_ERROR
"Asked for backend
${
USE_GSSAPI
}
but it wasn't found"
)
ENDIF
()
ELSE
()
SET
(
GIT_GSSAPI 0
)
ADD_FEATURE_INFO
(
SPNEGO NO
"SPNEGO authentication support"
)
ENDIF
()
set
(
GIT_GSSAPI 1
)
add_feature_info
(
SPNEGO GIT_GSSAPI
"SPNEGO authentication support (
${
USE_GSSAPI
}
)"
)
else
()
message
(
FATAL_ERROR
"Asked for backend
${
USE_GSSAPI
}
but it wasn't found"
)
endif
()
else
()
set
(
GIT_GSSAPI 0
)
add_feature_info
(
SPNEGO NO
"SPNEGO authentication support"
)
endif
()
cmake/SelectHTTPSBackend.cmake
View file @
c3fec456
INCLUDE
(
SanitizeBool
)
include
(
SanitizeBool
)
# We try to find any packages our backends might use
FIND_PACKAGE
(
OpenSSL
)
FIND_PACKAGE
(
mbedTLS
)
IF
(
CMAKE_SYSTEM_NAME MATCHES
"Darwin"
)
FIND_PACKAGE
(
Security
)
FIND_PACKAGE
(
CoreFoundation
)
ENDIF
()
find_package
(
OpenSSL
)
find_package
(
mbedTLS
)
if
(
CMAKE_SYSTEM_NAME MATCHES
"Darwin"
)
find_package
(
Security
)
find_package
(
CoreFoundation
)
endif
()
IF
(
USE_HTTPS
)
if
(
USE_HTTPS
)
# Auto-select TLS backend
SanitizeB
ool
(
USE_HTTPS
)
IF
(
USE_HTTPS STREQUAL ON
)
IF
(
SECURITY_FOUND
)
IF
(
SECURITY_HAS_SSLCREATECONTEXT
)
SET
(
USE_HTTPS
"SecureTransport"
)
ELSE
()
MESSAGE
(
STATUS
"Security framework is too old, falling back to OpenSSL"
)
SET
(
USE_HTTPS
"OpenSSL"
)
ENDIF
()
ELSEIF
(
USE_WINHTTP
)
SET
(
USE_HTTPS
"WinHTTP"
)
ELSEIF
(
OPENSSL_FOUND
)
SET
(
USE_HTTPS
"OpenSSL"
)
ELSEIF
(
MBEDTLS_FOUND
)
SET
(
USE_HTTPS
"mbedTLS"
)
ELSE
()
MESSAGE
(
FATAL_ERROR
"Unable to autodetect a usable HTTPS backend."
sanitizeb
ool
(
USE_HTTPS
)
if
(
USE_HTTPS STREQUAL ON
)
if
(
SECURITY_FOUND
)
if
(
SECURITY_HAS_SSLCREATECONTEXT
)
set
(
USE_HTTPS
"SecureTransport"
)
else
()
message
(
STATUS
"Security framework is too old, falling back to OpenSSL"
)
set
(
USE_HTTPS
"OpenSSL"
)
endif
()
elseif
(
USE_WINHTTP
)
set
(
USE_HTTPS
"WinHTTP"
)
elseif
(
OPENSSL_FOUND
)
set
(
USE_HTTPS
"OpenSSL"
)
elseif
(
MBEDTLS_FOUND
)
set
(
USE_HTTPS
"mbedTLS"
)
else
()
message
(
FATAL_ERROR
"Unable to autodetect a usable HTTPS backend."
"Please pass the backend name explicitly (-DUSE_HTTPS=backend)"
)
ENDIF
()
ENDIF
()
endif
()
endif
()
# Check that we can find what's required for the selected backend
IF
(
USE_HTTPS STREQUAL
"SecureTransport"
)
IF
(
NOT COREFOUNDATION_FOUND
)
MESSAGE
(
FATAL_ERROR
"Cannot use SecureTransport backend, CoreFoundation.framework not found"
)
ENDIF
()
IF
(
NOT SECURITY_FOUND
)
MESSAGE
(
FATAL_ERROR
"Cannot use SecureTransport backend, Security.framework not found"
)
ENDIF
()
IF
(
NOT SECURITY_HAS_SSLCREATECONTEXT
)
MESSAGE
(
FATAL_ERROR
"Cannot use SecureTransport backend, SSLCreateContext not supported"
)
ENDIF
()
if
(
USE_HTTPS STREQUAL
"SecureTransport"
)
if
(
NOT COREFOUNDATION_FOUND
)
message
(
FATAL_ERROR
"Cannot use SecureTransport backend, CoreFoundation.framework not found"
)
endif
()
if
(
NOT SECURITY_FOUND
)
message
(
FATAL_ERROR
"Cannot use SecureTransport backend, Security.framework not found"
)
endif
()
if
(
NOT SECURITY_HAS_SSLCREATECONTEXT
)
message
(
FATAL_ERROR
"Cannot use SecureTransport backend, SSLCreateContext not supported"
)
endif
()
SET
(
GIT_SECURE_TRANSPORT 1
)
LIST
(
APPEND LIBGIT2_SYSTEM_INCLUDES
${
SECURITY_INCLUDE_DIR
}
)
LIST
(
APPEND LIBGIT2_LIBS
${
COREFOUNDATION_LDFLAGS
}
${
SECURITY_LDFLAGS
}
)
LIST
(
APPEND LIBGIT2_PC_LIBS
${
COREFOUNDATION_LDFLAGS
}
${
SECURITY_LDFLAGS
}
)
ELSEIF
(
USE_HTTPS STREQUAL
"OpenSSL"
)
IF
(
NOT OPENSSL_FOUND
)
MESSAGE
(
FATAL_ERROR
"Asked for OpenSSL TLS backend, but it wasn't found"
)
ENDIF
()
set
(
GIT_SECURE_TRANSPORT 1
)
list
(
APPEND LIBGIT2_SYSTEM_INCLUDES
${
SECURITY_INCLUDE_DIR
}
)
list
(
APPEND LIBGIT2_LIBS
${
COREFOUNDATION_LDFLAGS
}
${
SECURITY_LDFLAGS
}
)
list
(
APPEND LIBGIT2_PC_LIBS
${
COREFOUNDATION_LDFLAGS
}
${
SECURITY_LDFLAGS
}
)
elseif
(
USE_HTTPS STREQUAL
"OpenSSL"
)
if
(
NOT OPENSSL_FOUND
)
message
(
FATAL_ERROR
"Asked for OpenSSL TLS backend, but it wasn't found"
)
endif
()
SET
(
GIT_OPENSSL 1
)
LIST
(
APPEND LIBGIT2_SYSTEM_INCLUDES
${
OPENSSL_INCLUDE_DIR
}
)
LIST
(
APPEND LIBGIT2_LIBS
${
OPENSSL_LIBRARIES
}
)
LIST
(
APPEND LIBGIT2_PC_LIBS
${
OPENSSL_LDFLAGS
}
)
LIST
(
APPEND LIBGIT2_PC_REQUIRES
"openssl"
)
ELSEIF
(
USE_HTTPS STREQUAL
"mbedTLS"
)
IF
(
NOT MBEDTLS_FOUND
)
MESSAGE
(
FATAL_ERROR
"Asked for mbedTLS backend, but it wasn't found"
)
ENDIF
()
set
(
GIT_OPENSSL 1
)
list
(
APPEND LIBGIT2_SYSTEM_INCLUDES
${
OPENSSL_INCLUDE_DIR
}
)
list
(
APPEND LIBGIT2_LIBS
${
OPENSSL_LIBRARIES
}
)
list
(
APPEND LIBGIT2_PC_LIBS
${
OPENSSL_LDFLAGS
}
)
list
(
APPEND LIBGIT2_PC_REQUIRES
"openssl"
)
elseif
(
USE_HTTPS STREQUAL
"mbedTLS"
)
if
(
NOT MBEDTLS_FOUND
)
message
(
FATAL_ERROR
"Asked for mbedTLS backend, but it wasn't found"
)
endif
()
IF
(
NOT CERT_LOCATION
)
MESSAGE
(
STATUS
"Auto-detecting default certificates location"
)
IF
(
CMAKE_SYSTEM_NAME MATCHES Darwin
)
if
(
NOT CERT_LOCATION
)
message
(
STATUS
"Auto-detecting default certificates location"
)
if
(
CMAKE_SYSTEM_NAME MATCHES Darwin
)
# Check for an Homebrew installation
SET
(
OPENSSL_CMD
"/usr/local/opt/openssl/bin/openssl"
)
ELSE
()
SET
(
OPENSSL_CMD
"openssl"
)
ENDIF
()
EXECUTE_PROCESS
(
COMMAND
${
OPENSSL_CMD
}
version -d OUTPUT_VARIABLE OPENSSL_DIR OUTPUT_STRIP_TRAILING_WHITESPACE
)
IF
(
OPENSSL_DIR
)
STRING
(
REGEX REPLACE
"^OPENSSLDIR:
\"
(.*)
\"
$"
"
\\
1/"
OPENSSL_DIR
${
OPENSSL_DIR
}
)
set
(
OPENSSL_CMD
"/usr/local/opt/openssl/bin/openssl"
)
else
()
set
(
OPENSSL_CMD
"openssl"
)
endif
()
execute_process
(
COMMAND
${
OPENSSL_CMD
}
version -d OUTPUT_VARIABLE OPENSSL_DIR OUTPUT_STRIP_TRAILING_WHITESPACE
)
if
(
OPENSSL_DIR
)
string
(
REGEX REPLACE
"^OPENSSLDIR:
\"
(.*)
\"
$"
"
\\
1/"
OPENSSL_DIR
${
OPENSSL_DIR
}
)
SET
(
OPENSSL_CA_LOCATIONS
set
(
OPENSSL_CA_LOCATIONS
"ca-bundle.pem"
# OpenSUSE Leap 42.1
"cert.pem"
# Ubuntu 14.04, FreeBSD
"certs/ca-certificates.crt"
# Ubuntu 16.04
"certs/ca.pem"
# Debian 7
)
FOREACH
(
SUFFIX IN LISTS OPENSSL_CA_LOCATIONS
)
SET
(
LOC
"
${
OPENSSL_DIR
}${
SUFFIX
}
"
)
IF
(
NOT CERT_LOCATION AND EXISTS
"
${
OPENSSL_DIR
}${
SUFFIX
}
"
)
SET
(
CERT_LOCATION
${
LOC
}
)
ENDIF
()
ENDFOREACH
()
ELSE
()
MESSAGE
(
FATAL_ERROR
"Unable to find OpenSSL executable. Please provide default certificate location via CERT_LOCATION"
)
ENDIF
()
ENDIF
()
foreach
(
SUFFIX IN LISTS OPENSSL_CA_LOCATIONS
)
set
(
LOC
"
${
OPENSSL_DIR
}${
SUFFIX
}
"
)
if
(
NOT CERT_LOCATION AND EXISTS
"
${
OPENSSL_DIR
}${
SUFFIX
}
"
)
set
(
CERT_LOCATION
${
LOC
}
)
endif
()
endforeach
()
else
()
message
(
FATAL_ERROR
"Unable to find OpenSSL executable. Please provide default certificate location via CERT_LOCATION"
)
endif
()
endif
()
IF
(
CERT_LOCATION
)
IF
(
NOT EXISTS
${
CERT_LOCATION
}
)
MESSAGE
(
FATAL_ERROR
"Cannot use CERT_LOCATION=
${
CERT_LOCATION
}
as it doesn't exist"
)
ENDIF
()
ADD_FEATURE_INFO
(
CERT_LOCATION ON
"using certificates from
${
CERT_LOCATION
}
"
)
ADD_DEFINITIONS
(
-DGIT_DEFAULT_CERT_LOCATION=
"
${
CERT_LOCATION
}
"
)
ENDIF
()
if
(
CERT_LOCATION
)
if
(
NOT EXISTS
${
CERT_LOCATION
}
)
message
(
FATAL_ERROR
"Cannot use CERT_LOCATION=
${
CERT_LOCATION
}
as it doesn't exist"
)
endif
()
add_feature_info
(
CERT_LOCATION ON
"using certificates from
${
CERT_LOCATION
}
"
)
add_definitions
(
-DGIT_DEFAULT_CERT_LOCATION=
"
${
CERT_LOCATION
}
"
)
endif
()
SET
(
GIT_MBEDTLS 1
)
LIST
(
APPEND LIBGIT2_SYSTEM_INCLUDES
${
MBEDTLS_INCLUDE_DIR
}
)
LIST
(
APPEND LIBGIT2_LIBS
${
MBEDTLS_LIBRARIES
}
)
set
(
GIT_MBEDTLS 1
)
list
(
APPEND LIBGIT2_SYSTEM_INCLUDES
${
MBEDTLS_INCLUDE_DIR
}
)
list
(
APPEND LIBGIT2_LIBS
${
MBEDTLS_LIBRARIES
}
)
# mbedTLS has no pkgconfig file, hence we can't require it
# https://github.com/ARMmbed/mbedtls/issues/228
# For now, pass its link flags as our own
LIST
(
APPEND LIBGIT2_PC_LIBS
${
MBEDTLS_LIBRARIES
}
)
ELSEIF
(
USE_HTTPS STREQUAL
"WinHTTP"
)
list
(
APPEND LIBGIT2_PC_LIBS
${
MBEDTLS_LIBRARIES
}
)
elseif
(
USE_HTTPS STREQUAL
"WinHTTP"
)
# WinHTTP setup was handled in the WinHTTP-specific block above
ELSEIF
(
USE_HTTPS STREQUAL
"OpenSSL-Dynamic"
)
SET
(
GIT_OPENSSL 1
)
SET
(
GIT_OPENSSL_DYNAMIC 1
)
LIST
(
APPEND LIBGIT2_LIBS dl
)
ELSE
()
MESSAGE
(
FATAL_ERROR
"Asked for backend
${
USE_HTTPS
}
but it wasn't found"
)
ENDIF
()
elseif
(
USE_HTTPS STREQUAL
"OpenSSL-Dynamic"
)
set
(
GIT_OPENSSL 1
)
set
(
GIT_OPENSSL_DYNAMIC 1
)
list
(
APPEND LIBGIT2_LIBS dl
)
else
()
message
(
FATAL_ERROR
"Asked for backend
${
USE_HTTPS
}
but it wasn't found"
)
endif
()
SET
(
GIT_HTTPS 1
)
ADD_FEATURE_INFO
(
HTTPS GIT_HTTPS
"using
${
USE_HTTPS
}
"
)
ELSE
()
SET
(
GIT_HTTPS 0
)
ADD_FEATURE_INFO
(
HTTPS NO
""
)
ENDIF
()
set
(
GIT_HTTPS 1
)
add_feature_info
(
HTTPS GIT_HTTPS
"using
${
USE_HTTPS
}
"
)
else
()
set
(
GIT_HTTPS 0
)
add_feature_info
(
HTTPS NO
""
)
endif
()
cmake/SelectHashes.cmake
View file @
c3fec456
# Select a hash backend
INCLUDE
(
SanitizeBool
)
include
(
SanitizeBool
)
# USE_SHA1=CollisionDetection(ON)/HTTPS/Generic/OFF
SanitizeB
ool
(
USE_SHA1
)
IF
(
USE_SHA1 STREQUAL ON
)
SET
(
USE_SHA1
"CollisionDetection"
)
ELSEIF
(
USE_SHA1 STREQUAL
"HTTPS"
)
IF
(
USE_HTTPS STREQUAL
"SecureTransport"
)
SET
(
USE_SHA1
"CommonCrypto"
)
ELSEIF
(
USE_HTTPS STREQUAL
"WinHTTP"
)
SET
(
USE_SHA1
"Win32"
)
ELSEIF
(
USE_HTTPS
)
SET
(
USE_SHA1
${
USE_HTTPS
}
)
ELSE
()
SET
(
USE_SHA1
"CollisionDetection"
)
ENDIF
()
ENDIF
()
sanitizeb
ool
(
USE_SHA1
)
if
(
USE_SHA1 STREQUAL ON
)
set
(
USE_SHA1
"CollisionDetection"
)
elseif
(
USE_SHA1 STREQUAL
"HTTPS"
)
if
(
USE_HTTPS STREQUAL
"SecureTransport"
)
set
(
USE_SHA1
"CommonCrypto"
)
elseif
(
USE_HTTPS STREQUAL
"WinHTTP"
)
set
(
USE_SHA1
"Win32"
)
elseif
(
USE_HTTPS
)
set
(
USE_SHA1
${
USE_HTTPS
}
)
else
()
set
(
USE_SHA1
"CollisionDetection"
)
endif
()
endif
()
IF
(
USE_SHA1 STREQUAL
"CollisionDetection"
)
SET
(
GIT_SHA1_COLLISIONDETECT 1
)
ADD_DEFINITIONS
(
-DSHA1DC_NO_STANDARD_INCLUDES=1
)
ADD_DEFINITIONS
(
-DSHA1DC_CUSTOM_INCLUDE_SHA1_C=\
"common.h
\"
)
ADD_DEFINITIONS
(-DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C=
\"
common.h
\"
)
FILE
(GLOB SRC_SHA1 hash/sha1/collisiondetect.* hash/sha1/sha1dc/*)
ELSEIF
(USE_SHA1 STREQUAL "
OpenSSL
")
if
(
USE_SHA1 STREQUAL
"CollisionDetection"
)
set
(
GIT_SHA1_COLLISIONDETECT 1
)
add_definitions
(
-DSHA1DC_NO_STANDARD_INCLUDES=1
)
add_definitions
(
-DSHA1DC_CUSTOM_INCLUDE_SHA1_C=\
"common.h
\"
)
add_definitions
(-DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C=
\"
common.h
\"
)
file
(GLOB SRC_SHA1 hash/sha1/collisiondetect.* hash/sha1/sha1dc/*)
elseif
(USE_SHA1 STREQUAL "
OpenSSL
")
# OPENSSL_FOUND should already be set, we're checking USE_HTTPS
SET
(GIT_SHA1_OPENSSL 1)
IF
(CMAKE_SYSTEM_NAME MATCHES "
FreeBSD
")
LIST
(APPEND LIBGIT2_PC_LIBS "
-lssl
")
ELSE
()
LIST
(APPEND LIBGIT2_PC_REQUIRES "
openssl
")
ENDIF
()
FILE
(GLOB SRC_SHA1 hash/sha1/openssl.*)
ELSEIF
(USE_SHA1 STREQUAL "
CommonCrypto
")
SET
(GIT_SHA1_COMMON_CRYPTO 1)
FILE
(GLOB SRC_SHA1 hash/sha1/common_crypto.*)
ELSEIF
(USE_SHA1 STREQUAL "
mbedTLS
")
SET
(GIT_SHA1_MBEDTLS 1)
FILE
(GLOB SRC_SHA1 hash/sha1/mbedtls.*)
LIST
(APPEND LIBGIT2_SYSTEM_INCLUDES
${
MBEDTLS_INCLUDE_DIR
}
)
LIST
(APPEND LIBGIT2_LIBS
${
MBEDTLS_LIBRARIES
}
)
set
(GIT_SHA1_OPENSSL 1)
if
(CMAKE_SYSTEM_NAME MATCHES "
FreeBSD
")
list
(APPEND LIBGIT2_PC_LIBS "
-lssl
")
else
()
list
(APPEND LIBGIT2_PC_REQUIRES "
openssl
")
endif
()
file
(GLOB SRC_SHA1 hash/sha1/openssl.*)
elseif
(USE_SHA1 STREQUAL "
CommonCrypto
")
set
(GIT_SHA1_COMMON_CRYPTO 1)
file
(GLOB SRC_SHA1 hash/sha1/common_crypto.*)
elseif
(USE_SHA1 STREQUAL "
mbedTLS
")
set
(GIT_SHA1_MBEDTLS 1)
file
(GLOB SRC_SHA1 hash/sha1/mbedtls.*)
list
(APPEND LIBGIT2_SYSTEM_INCLUDES
${
MBEDTLS_INCLUDE_DIR
}
)
list
(APPEND LIBGIT2_LIBS
${
MBEDTLS_LIBRARIES
}
)
# mbedTLS has no pkgconfig file, hence we can't require it
# https://github.com/ARMmbed/mbedtls/issues/228
# For now, pass its link flags as our own
LIST
(APPEND LIBGIT2_PC_LIBS
${
MBEDTLS_LIBRARIES
}
)
ELSEIF
(USE_SHA1 STREQUAL "
Win32
")
SET
(GIT_SHA1_WIN32 1)
FILE
(GLOB SRC_SHA1 hash/sha1/win32.*)
ELSEIF
(USE_SHA1 STREQUAL "
Generic
")
FILE
(GLOB SRC_SHA1 hash/sha1/generic.*)
ELSE
()
MESSAGE
(FATAL_ERROR "
Asked for unknown SHA1 backend:
${
USE_SHA1
}
")
ENDIF
()
list
(APPEND LIBGIT2_PC_LIBS
${
MBEDTLS_LIBRARIES
}
)
elseif
(USE_SHA1 STREQUAL "
Win32
")
set
(GIT_SHA1_WIN32 1)
file
(GLOB SRC_SHA1 hash/sha1/win32.*)
elseif
(USE_SHA1 STREQUAL "
Generic
")
file
(GLOB SRC_SHA1 hash/sha1/generic.*)
else
()
message
(FATAL_ERROR "
Asked for unknown SHA1 backend:
${
USE_SHA1
}
")
endif
()
list(APPEND SRC_SHA1 "
hash/sha1.h
")
list(SORT SRC_SHA1)
ADD_FEATURE_INFO
(SHA ON "
using
${
USE_SHA1
}
")
add_feature_info
(SHA ON "
using
${
USE_SHA1
}
")
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a 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