-
Notifications
You must be signed in to change notification settings - Fork 4
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #43 from njoy/update/shacl-cmake
Update/shacl cmake
- Loading branch information
Showing
238 changed files
with
9,166 additions
and
17 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
*.sw? | ||
*~ | ||
*.bak |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
include: | ||
- project: 'scl/shacl-gitlab' | ||
ref: main | ||
file: '/ci.yml' | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
cmake_minimum_required(VERSION 3.12.1) | ||
include_guard(DIRECTORY) | ||
|
||
include("${CMAKE_CURRENT_LIST_DIR}/../config.cmake") | ||
|
||
if(shacl.cmake.installation) | ||
get_property( | ||
shacl.cmake.installed_modules GLOBAL PROPERTY shacl.cmake.installed_modules) | ||
|
||
if(NOT "Backports/X11" IN_LIST shacl.cmake.installed_modules) | ||
set_property(GLOBAL APPEND PROPERTY | ||
shacl.cmake.installed_modules "Backports/X11") | ||
|
||
install( | ||
FILES "${CMAKE_CURRENT_LIST_FILE}" | ||
DESTINATION share/cmake/shacl/.cmake/Backports) | ||
|
||
install( | ||
DIRECTORY "${CMAKE_CURRENT_LIST_DIR}/X11" | ||
DESTINATION share/cmake/shacl/.cmake/Backports) | ||
endif() | ||
|
||
unset(shacl.cmake.installed_modules) | ||
endif() | ||
|
||
set_property(GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS ON) | ||
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/X11") |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
#ifdef CHECK_FUNCTION_EXISTS | ||
|
||
#ifdef __cplusplus | ||
extern "C" | ||
#endif | ||
char | ||
CHECK_FUNCTION_EXISTS(void); | ||
#ifdef __CLASSIC_C__ | ||
int main() | ||
{ | ||
int ac; | ||
char* av[]; | ||
#else | ||
int main(int ac, char* av[]) | ||
{ | ||
#endif | ||
CHECK_FUNCTION_EXISTS(); | ||
if (ac > 1000) { | ||
return *av[0]; | ||
} | ||
return 0; | ||
} | ||
|
||
#else /* CHECK_FUNCTION_EXISTS */ | ||
|
||
#error "CHECK_FUNCTION_EXISTS has to specify the function" | ||
|
||
#endif /* CHECK_FUNCTION_EXISTS */ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,99 @@ | ||
cmake_minimum_required(VERSION 3.12.1) | ||
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying | ||
# file Copyright.txt or https://cmake.org/licensing for details. | ||
|
||
#.rst: | ||
# CheckFunctionExists | ||
# ------------------- | ||
# | ||
# Check if a C function can be linked:: | ||
# | ||
# check_function_exists(<function> <variable>) | ||
# | ||
# Check that the ``<function>`` is provided by libraries on the system and store | ||
# the result in a ``<variable>``. ``<variable>`` will be created as an internal | ||
# cache variable. | ||
# | ||
# The following variables may be set before calling this macro to modify the | ||
# way the check is run: | ||
# | ||
# :: | ||
# | ||
# CMAKE_REQUIRED_FLAGS = string of compile command line flags | ||
# CMAKE_REQUIRED_DEFINITIONS = list of macros to define (-DFOO=bar) | ||
# CMAKE_REQUIRED_INCLUDES = list of include directories | ||
# CMAKE_REQUIRED_LIBRARIES = list of libraries to link | ||
# CMAKE_REQUIRED_QUIET = execute quietly without messages | ||
# | ||
# .. note:: | ||
# | ||
# Prefer using :Module:`CheckSymbolExists` instead of this module, | ||
# for the following reasons: | ||
# | ||
# * ``check_function_exists()`` can't detect functions that are inlined | ||
# in headers or specified as a macro. | ||
# | ||
# * ``check_function_exists()`` can't detect anything in the 32-bit | ||
# versions of the Win32 API, because of a mismatch in calling conventions. | ||
# | ||
# * ``check_function_exists()`` only verifies linking, it does not verify | ||
# that the function is declared in system headers. | ||
|
||
macro(CHECK_FUNCTION_EXISTS FUNCTION VARIABLE) | ||
if(NOT DEFINED "${VARIABLE}" OR "x${${VARIABLE}}" STREQUAL "x${VARIABLE}") | ||
set(MACRO_CHECK_FUNCTION_DEFINITIONS | ||
"-DCHECK_FUNCTION_EXISTS=${FUNCTION} ${CMAKE_REQUIRED_FLAGS}") | ||
if(NOT CMAKE_REQUIRED_QUIET) | ||
message(STATUS "Looking for ${FUNCTION}") | ||
endif() | ||
if(CMAKE_REQUIRED_LIBRARIES) | ||
set(CHECK_FUNCTION_EXISTS_ADD_LIBRARIES | ||
LINK_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES}) | ||
else() | ||
set(CHECK_FUNCTION_EXISTS_ADD_LIBRARIES) | ||
endif() | ||
if(CMAKE_REQUIRED_INCLUDES) | ||
set(CHECK_FUNCTION_EXISTS_ADD_INCLUDES | ||
"-DINCLUDE_DIRECTORIES:STRING=${CMAKE_REQUIRED_INCLUDES}") | ||
else() | ||
set(CHECK_FUNCTION_EXISTS_ADD_INCLUDES) | ||
endif() | ||
|
||
if(CMAKE_C_COMPILER_LOADED) | ||
set(_cfe_source ${CMAKE_ROOT}/Modules/CheckFunctionExists.c) | ||
elseif(CMAKE_CXX_COMPILER_LOADED) | ||
set(_cfe_source ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CheckFunctionExists/CheckFunctionExists.cxx) | ||
configure_file(${CMAKE_ROOT}/Modules/CheckFunctionExists.c "${_cfe_source}" COPYONLY) | ||
else() | ||
message(FATAL_ERROR "CHECK_FUNCTION_EXISTS needs either C or CXX language enabled") | ||
endif() | ||
|
||
try_compile(${VARIABLE} | ||
${CMAKE_BINARY_DIR} | ||
${_cfe_source} | ||
COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS} | ||
${CHECK_FUNCTION_EXISTS_ADD_LIBRARIES} | ||
CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_FUNCTION_DEFINITIONS} | ||
"${CHECK_FUNCTION_EXISTS_ADD_INCLUDES}" | ||
OUTPUT_VARIABLE OUTPUT) | ||
unset(_cfe_source) | ||
|
||
if(${VARIABLE}) | ||
set(${VARIABLE} 1 CACHE INTERNAL "Have function ${FUNCTION}") | ||
if(NOT CMAKE_REQUIRED_QUIET) | ||
message(STATUS "Looking for ${FUNCTION} - found") | ||
endif() | ||
file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log | ||
"Determining if the function ${FUNCTION} exists passed with the following output:\n" | ||
"${OUTPUT}\n\n") | ||
else() | ||
if(NOT CMAKE_REQUIRED_QUIET) | ||
message(STATUS "Looking for ${FUNCTION} - not found") | ||
endif() | ||
set(${VARIABLE} "" CACHE INTERNAL "Have function ${FUNCTION}") | ||
file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log | ||
"Determining if the function ${FUNCTION} exists failed with the following output:\n" | ||
"${OUTPUT}\n\n") | ||
endif() | ||
endif() | ||
endmacro() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,86 @@ | ||
cmake_minimum_required(VERSION 3.12.1) | ||
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying | ||
# file Copyright.txt or https://cmake.org/licensing for details. | ||
|
||
#.rst: | ||
# CheckLibraryExists | ||
# ------------------ | ||
# | ||
# Check if the function exists. | ||
# | ||
# CHECK_LIBRARY_EXISTS (LIBRARY FUNCTION LOCATION VARIABLE) | ||
# | ||
# :: | ||
# | ||
# LIBRARY - the name of the library you are looking for | ||
# FUNCTION - the name of the function | ||
# LOCATION - location where the library should be found | ||
# VARIABLE - variable to store the result | ||
# Will be created as an internal cache variable. | ||
# | ||
# | ||
# | ||
# The following variables may be set before calling this macro to modify | ||
# the way the check is run: | ||
# | ||
# :: | ||
# | ||
# CMAKE_REQUIRED_FLAGS = string of compile command line flags | ||
# CMAKE_REQUIRED_DEFINITIONS = list of macros to define (-DFOO=bar) | ||
# CMAKE_REQUIRED_LIBRARIES = list of libraries to link | ||
# CMAKE_REQUIRED_QUIET = execute quietly without messages | ||
|
||
macro(CHECK_LIBRARY_EXISTS LIBRARY FUNCTION LOCATION VARIABLE) | ||
if(NOT DEFINED "${VARIABLE}") | ||
set(MACRO_CHECK_LIBRARY_EXISTS_DEFINITION | ||
"-DCHECK_FUNCTION_EXISTS=${FUNCTION} ${CMAKE_REQUIRED_FLAGS}") | ||
if(NOT CMAKE_REQUIRED_QUIET) | ||
message(STATUS "Looking for ${FUNCTION} in ${LIBRARY}") | ||
endif() | ||
set(CHECK_LIBRARY_EXISTS_LIBRARIES ${LIBRARY}) | ||
if(CMAKE_REQUIRED_LIBRARIES) | ||
set(CHECK_LIBRARY_EXISTS_LIBRARIES | ||
${CHECK_LIBRARY_EXISTS_LIBRARIES} ${CMAKE_REQUIRED_LIBRARIES}) | ||
endif() | ||
|
||
if(CMAKE_C_COMPILER_LOADED) | ||
set(_cle_source ${CMAKE_ROOT}/Modules/CheckFunctionExists.c) | ||
elseif(CMAKE_CXX_COMPILER_LOADED) | ||
set(_cle_source ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CheckLibraryExists/CheckFunctionExists.cxx) | ||
configure_file(${CMAKE_ROOT}/Modules/CheckFunctionExists.c "${_cle_source}" COPYONLY) | ||
else() | ||
message(FATAL_ERROR "CHECK_FUNCTION_EXISTS needs either C or CXX language enabled") | ||
endif() | ||
|
||
try_compile(${VARIABLE} | ||
${CMAKE_BINARY_DIR} | ||
${_cle_source} | ||
COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS} | ||
LINK_LIBRARIES ${CHECK_LIBRARY_EXISTS_LIBRARIES} | ||
CMAKE_FLAGS | ||
-DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_LIBRARY_EXISTS_DEFINITION} | ||
-DLINK_DIRECTORIES:STRING=${LOCATION} | ||
OUTPUT_VARIABLE OUTPUT) | ||
unset(_cle_source) | ||
|
||
if(${VARIABLE}) | ||
if(NOT CMAKE_REQUIRED_QUIET) | ||
message(STATUS "Looking for ${FUNCTION} in ${LIBRARY} - found") | ||
endif() | ||
set(${VARIABLE} 1 CACHE INTERNAL "Have library ${LIBRARY}") | ||
file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log | ||
"Determining if the function ${FUNCTION} exists in the ${LIBRARY} " | ||
"passed with the following output:\n" | ||
"${OUTPUT}\n\n") | ||
else() | ||
if(NOT CMAKE_REQUIRED_QUIET) | ||
message(STATUS "Looking for ${FUNCTION} in ${LIBRARY} - not found") | ||
endif() | ||
set(${VARIABLE} "" CACHE INTERNAL "Have library ${LIBRARY}") | ||
file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log | ||
"Determining if the function ${FUNCTION} exists in the ${LIBRARY} " | ||
"failed with the following output:\n" | ||
"${OUTPUT}\n\n") | ||
endif() | ||
endif() | ||
endmacro() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
cmake_minimum_required(VERSION 3.12.1) | ||
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying | ||
# file Copyright.txt or https://cmake.org/licensing for details. | ||
|
||
#.rst: | ||
# FindPackageMessage | ||
# ------------------ | ||
# | ||
# | ||
# | ||
# FIND_PACKAGE_MESSAGE(<name> "message for user" "find result details") | ||
# | ||
# This macro is intended to be used in FindXXX.cmake modules files. It | ||
# will print a message once for each unique find result. This is useful | ||
# for telling the user where a package was found. The first argument | ||
# specifies the name (XXX) of the package. The second argument | ||
# specifies the message to display. The third argument lists details | ||
# about the find result so that if they change the message will be | ||
# displayed again. The macro also obeys the QUIET argument to the | ||
# find_package command. | ||
# | ||
# Example: | ||
# | ||
# :: | ||
# | ||
# if(X11_FOUND) | ||
# FIND_PACKAGE_MESSAGE(X11 "Found X11: ${X11_X11_LIB}" | ||
# "[${X11_X11_LIB}][${X11_INCLUDE_DIR}]") | ||
# else() | ||
# ... | ||
# endif() | ||
|
||
function(FIND_PACKAGE_MESSAGE pkg msg details) | ||
# Avoid printing a message repeatedly for the same find result. | ||
if(NOT ${pkg}_FIND_QUIETLY) | ||
string(REPLACE "\n" "" details "${details}") | ||
set(DETAILS_VAR FIND_PACKAGE_MESSAGE_DETAILS_${pkg}) | ||
if(NOT "${details}" STREQUAL "${${DETAILS_VAR}}") | ||
# The message has not yet been printed. | ||
message(STATUS "${msg}") | ||
|
||
# Save the find details in the cache to avoid printing the same | ||
# message again. | ||
set("${DETAILS_VAR}" "${details}" | ||
CACHE INTERNAL "Details about finding ${pkg}") | ||
endif() | ||
endif() | ||
endfunction() |
Oops, something went wrong.