Skip to content

Commit b24680e

Browse files
authored
Merge pull request #116 from TauferLab/cmake_export
Completes the WIP CMake config for find_package
2 parents e3fdfb9 + 22dc5dd commit b24680e

File tree

12 files changed

+548
-606
lines changed

12 files changed

+548
-606
lines changed

CMakeLists.txt

Lines changed: 48 additions & 101 deletions
Original file line numberDiff line numberDiff line change
@@ -32,19 +32,21 @@ endif ()
3232
#
3333
if (CMAKE_INSTALL_LIBDIR)
3434
message(STATUS "CMAKE_INSTALL_LIBDIR ${CMAKE_INSTALL_LIBDIR}")
35-
set(DYAD_LIBDIR ${CMAKE_INSTALL_LIBDIR})
36-
set(DYAD_INSTALL_INCLUDE_DIR
35+
set(DYAD_INSTALL_BINDIR ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR})
36+
set(DYAD_INSTALL_LIBDIR ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR})
37+
set(DYAD_INSTALL_INCLUDEDIR
3738
${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_INCLUDEDIR})
3839
set(DYAD_INSTALL_DOCDIR
3940
${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_DOCDIR})
4041
set(DYAD_INSTALL_SYSCONFDIR
4142
${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_SYSCONFDIR}/modulefiles)
4243
else ()
43-
set(DYAD_LIBDIR "lib")
44-
set(DYAD_INSTALL_INCLUDE_DIR "${CMAKE_INSTALL_PREFIX}/include")
44+
set(DYAD_INSTALL_BINDIR "${CMAKE_INSTALL_PREFIX}/bin")
45+
set(DYAD_INSTALL_LIBDIR "${CMAKE_INSTALL_PREFIX}/lib")
46+
set(DYAD_INSTALL_INCLUDEDIR "${CMAKE_INSTALL_PREFIX}/include")
4547
set(DYAD_INSTALL_DOCDIR "${CMAKE_INSTALL_PREFIX}/doc")
4648
set(DYAD_INSTALL_SYSCONFDIR "${CMAKE_INSTALL_PREFIX}/etc/modulefiles")
47-
message(STATUS "DYAD_LIBDIR set to ${DYAD_LIBDIR}")
49+
message(STATUS "DYAD_INSTALL_LIBDIR set to ${DYAD_INSTALL_LIBDIR}")
4850
endif ()
4951

5052
#------------------------------------------------------------------------------
@@ -54,17 +56,19 @@ endif ()
5456
set(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} ${CMAKE_BINARY_DIR} ${CMAKE_INSTALL_PREFIX})
5557
# This sets where to look for dependent library's cmake files
5658
list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules)
57-
list(APPEND CMAKE_MODULE_PATH ${CMAKE_BINARY_DIR}/${DYAD_LIBDIR}/cmake)
59+
list(APPEND CMAKE_MODULE_PATH ${CMAKE_BINARY_DIR}/lib/cmake)
60+
list(APPEND CMAKE_MODULE_PATH ${CMAKE_BINARY_DIR}/lib64/cmake)
5861
list(APPEND CMAKE_MODULE_PATH ${CMAKE_BINARY_DIR}/share/cmake)
5962

6063
#------------------------------------------------------------------------------
61-
if (NOT DYAD_EXTERNALLY_CONFIGURED)
62-
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin CACHE PATH "Single Directory for all Executables.")
63-
set(CMAKE_INCLUDE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/include CACHE PATH "Store the headers.")
64-
set(EXECUTABLE_OUTPUT_PATH ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
65-
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${DYAD_LIBDIR} CACHE PATH "Single Directory for all Libraries")
66-
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${DYAD_LIBDIR} CACHE PATH "Single Directory for all static libraries.")
67-
endif ()
64+
# This doesn't really need to be in an 'if' statement since they're cache variables
65+
# if (NOT DYAD_EXTERNALLY_CONFIGURED)
66+
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin CACHE PATH "Single Directory for all Executables.")
67+
set(CMAKE_INCLUDE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/include CACHE PATH "Store the headers.")
68+
set(EXECUTABLE_OUTPUT_PATH ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
69+
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib CACHE PATH "Single Directory for all Libraries")
70+
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib CACHE PATH "Single Directory for all static libraries.")
71+
# endif ()
6872

6973
#-----------------------------------------------------------------------------
7074
# Targets built within this project are exported at Install time for use
@@ -285,123 +289,65 @@ include_directories(${CMAKE_SOURCE_DIR}/include) # public header
285289
add_subdirectory(src/dyad)
286290
#cmake_policy(SET CMP0079 NEW) # In case that we need more control over the target building order
287291

288-
289-
#-----------------------------------------------------------------------------
290-
# Configure the config.cmake file for the build directory
291-
#-----------------------------------------------------------------------------
292-
configure_file(
293-
${CMAKE_CURRENT_SOURCE_DIR}/CMake/${PROJECT_NAME}-config.cmake.build.in
294-
${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/cmake/${PROJECT_NAME}/${PROJECT_NAME}-config.cmake @ONLY
295-
)
296-
297-
configure_file(
298-
${CMAKE_CURRENT_SOURCE_DIR}/CMake/${PROJECT_NAME}-config.cmake.install.in
299-
${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/cmake/${PROJECT_NAME}/install/${PROJECT_NAME}-config.cmake @ONLY
300-
)
301-
install(
302-
FILES
303-
${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/cmake/${PROJECT_NAME}/install/${PROJECT_NAME}-config.cmake
304-
DESTINATION
305-
${DYAD_LIBDIR}/cmake/${PROJECT_NAME}
306-
)
307-
#-----------------------------------------------------------------------------
308-
# Configure the ${PROJECT_NAME}-config-version .cmake file for the install directory
309-
#-----------------------------------------------------------------------------
310-
configure_file(
311-
${CMAKE_CURRENT_SOURCE_DIR}/CMake/${PROJECT_NAME}-config-version.cmake.in
312-
${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/cmake/${PROJECT_NAME}/${PROJECT_NAME}-config-version.cmake @ONLY
313-
)
314-
315-
install(
316-
FILES
317-
${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/cmake/${PROJECT_NAME}/${PROJECT_NAME}-config-version.cmake
318-
DESTINATION
319-
${DYAD_LIBDIR}/cmake/${PROJECT_NAME}
320-
)
321-
322-
export(EXPORT ${DYAD_EXPORTED_TARGETS}
323-
FILE "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/cmake/${PROJECT_NAME}/${PROJECT_NAME}Targets.cmake")
324-
325292
# Write the configure file
326293
configure_file("${CMAKE_SOURCE_DIR}/cmake/configure_files/dyad_config.hpp.in"
327294
"${CMAKE_INCLUDE_OUTPUT_DIRECTORY}/dyad/dyad_config.hpp" @ONLY)
328295

329-
330296
################################################################
331297
# Install DYAD
332298
################################################################
333299

334300
include(CMakePackageConfigHelpers)
335301

302+
set(DYAD_BUILD_CMAKE_DIR "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/cmake/${PROJECT_NAME}")
303+
set(DYAD_INSTALL_CMAKE_DIR "${DYAD_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}")
304+
set(DYAD_INSTALL_TMP_CMAKE_DIR "${CMAKE_BINARY_DIR}/install_cmake_scripts")
305+
336306
# Write the version file. This is independent of build/install tree.
337307
write_basic_package_version_file(
338-
DYADConfigVersion.cmake
308+
${DYAD_BUILD_CMAKE_DIR}/DYADConfigVersion.cmake
339309
VERSION "${DYAD_PACKAGE_VERSION}"
340310
COMPATIBILITY SameMajorVersion)
311+
file(COPY ${DYAD_BUILD_CMAKE_DIR}/DYADConfigVersion.cmake
312+
DESTINATION ${DYAD_INSTALL_TMP_CMAKE_DIR})
341313

342-
#...........................................
343-
# TODO: There are two different places where cmake config is handled currently.
344-
# Need to clean up and merge
345-
346-
if (WIP_package_config)
347314
# This is for the build tree
348-
#set(INCLUDE_INSTALL_DIRS
349-
# "${CMAKE_SOURCE_DIR}/src/dyad/common"
350-
# "${CMAKE_SOURCE_DIR}/src/dyad/core"
351-
# "${CMAKE_SOURCE_DIR}/src/dyad/dtl"
352-
# "${CMAKE_SOURCE_DIR}/src/dyad/module"
353-
# "${CMAKE_SOURCE_DIR}/src/dyad/wrapper"
354-
# "${CMAKE_SOURCE_DIR}/src/dyad/utils"
355-
# "${CMAKE_SOURCE_DIR}/src/dyad/utils/base64")
356-
# "${CMAKE_SOURCE_DIR}/include/dyad/stream")
357315
set(EXTRA_CMAKE_MODULE_DIR "${CMAKE_SOURCE_DIR}/cmake/modules")
358-
359-
configure_package_config_file(cmake/configure_files/DYADConfig.cmake.in
360-
"${CMAKE_BINARY_DIR}/DYADConfig.cmake"
361-
INSTALL_DESTINATION "${CMAKE_BINARY_DIR}/src/dyad/${DYAD_LIBDIR}/cmake/dyad"
362-
PATH_VARS CMAKE_BINARY_DIR)
363-
#PATH_VARS INCLUDE_INSTALL_DIRS CMAKE_BINARY_DIR)
316+
set(INCLUDE_INSTALL_DIRS ${CMAKE_INCLUDE_OUTPUT_DIRECTORY})
317+
set(LIB_INSTALL_DIR ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
318+
configure_package_config_file(${CMAKE_CURRENT_SOURCE_DIR}/cmake/configure_files/DYADConfig.cmake.in
319+
"${DYAD_BUILD_CMAKE_DIR}/DYADConfig.cmake"
320+
INSTALL_DESTINATION "${DYAD_BUILD_CMAKE_DIR}"
321+
PATH_VARS INCLUDE_INSTALL_DIRS LIB_INSTALL_DIR)
364322

365323
# Write the configure file for the install tree
366-
set(INCLUDE_INSTALL_DIRS include)
367-
set(EXTRA_CMAKE_MODULE_DIR)
324+
set(EXTRA_CMAKE_MODULE_DIR "")
325+
set(INCLUDE_INSTALL_DIRS "${DYAD_INSTALL_INCLUDEDIR}")
326+
set(LIB_INSTALL_DIR "${DYAD_INSTALL_LIBDIR}")
368327
configure_package_config_file(cmake/configure_files/DYADConfig.cmake.in
369-
"${CMAKE_BINARY_DIR}/DYADConfig.cmake.install"
370-
INSTALL_DESTINATION "${DYAD_LIBDIR}/cmake/dyad"
371-
PATH_VARS INCLUDE_INSTALL_DIRS DYAD_LIBDIR)
328+
"${DYAD_INSTALL_TMP_CMAKE_DIR}/DYADConfig.cmake"
329+
INSTALL_DESTINATION "${DYAD_INSTALL_CMAKE_DIR}"
330+
PATH_VARS INCLUDE_INSTALL_DIRS LIB_INSTALL_DIR)
372331

373332
# Install export
374-
install(EXPORT DYADTargets
333+
install(EXPORT ${DYAD_EXPORTED_TARGETS} # DYADTargets
375334
NAMESPACE DYAD::
376335
FILE DYADTargets.cmake
377-
DESTINATION "${DYAD_LIBDIR}/cmake/dyad")
336+
DESTINATION "${DYAD_INSTALL_CMAKE_DIR}")
378337

379338
# Install the cmake stuff
380-
install(FILES "${PROJECT_BINARY_DIR}/DYADConfig.cmake.install"
381-
DESTINATION "${DYAD_LIBDIR}/cmake/dyad"
382-
RENAME "DYADConfig.cmake")
383-
384-
install(FILES "${PROJECT_BINARY_DIR}/DYADConfigVersion.cmake"
385-
DESTINATION "${DYAD_LIBDIR}/cmake/dyad")
339+
install(DIRECTORY "${DYAD_INSTALL_TMP_CMAKE_DIR}/" # Trailing slash ensures directory structure is not copied
340+
DESTINATION "${DYAD_INSTALL_CMAKE_DIR}"
341+
FILES_MATCHING PATTERN "*.cmake")
386342

387343
install(DIRECTORY cmake/modules
388-
DESTINATION "${DYAD_LIBDIR}/cmake/dyad"
344+
DESTINATION "${DYAD_INSTALL_CMAKE_DIR}"
389345
FILES_MATCHING PATTERN "*.cmake")
390-
endif (WIP_package_config)
391-
#...........................................
392346

393347
install(FILES
394348
"${CMAKE_INCLUDE_OUTPUT_DIRECTORY}/dyad/dyad_config.hpp"
395349
DESTINATION
396-
${DYAD_INSTALL_INCLUDE_DIR}/dyad)
397-
398-
install(EXPORT
399-
${DYAD_EXPORTED_TARGETS}
400-
DESTINATION
401-
${DYAD_LIBDIR}/cmake/${PROJECT_NAME}
402-
FILE
403-
${DYAD_EXPORTED_TARGETS}.cmake
404-
)
350+
${DYAD_INSTALL_INCLUDEDIR}/dyad)
405351

406352
# Install license and readme
407353
install(FILES
@@ -455,10 +401,11 @@ string(APPEND _str
455401
" DYAD_PACKAGE_VERSION: ${DYAD_PACKAGE_VERSION}\n")
456402
string(APPEND _str
457403
" DYAD_GIT_VERSION: ${DYAD_GIT_VERSION}\n")
458-
string(APPEND _str
459-
" DYAD_ENABLE_UCX_DATA: ${DYAD_ENABLE_UCX_DATA}\n")
460-
string(APPEND _str
461-
" DYAD_ENABLE_UCX_DATA_RMA: ${DYAD_ENABLE_UCX_DATA_RMA}\n")
404+
# Comment out since they'll be printed again below
405+
# string(APPEND _str
406+
# " DYAD_ENABLE_UCX_DATA: ${DYAD_ENABLE_UCX_DATA}\n")
407+
# string(APPEND _str
408+
# " DYAD_ENABLE_UCX_DATA_RMA: ${DYAD_ENABLE_UCX_DATA_RMA}\n")
462409
string(APPEND _str
463410
" DYAD_ENABLE_TESTS: ${DYAD_ENABLE_TESTS}\n")
464411
string(APPEND _str

cmake/configure_files/DYADConfig.cmake.in

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,11 @@ list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}")
88
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/modules")
99
list(APPEND CMAKE_MODULE_PATH "@EXTRA_CMAKE_MODULE_DIR@")
1010

11-
#include(GNUInstallDirs)
12-
include(ExternalProject)
13-
include(DYADCMakeUtilities)
14-
include(CMakePackageConfigHelpers)
11+
# None of these are currently needed
12+
# include(GNUInstallDirs)
13+
# include(ExternalProject)
14+
# include(DYADCMakeUtilities)
15+
# include(CMakePackageConfigHelpers)
1516

1617

1718
set(DYAD_VERSION ${PACKAGE_VERSION})
@@ -26,8 +27,10 @@ set(DYAD_CXX_FLAGS "@CMAKE_CXX_FLAGS@")
2627
set(DYAD_C_STANDARD "@CMAKE_C_STANDARD@")
2728
set(DYAD_CXX_STANDARD "@CMAKE_CXX_STANDARD@")
2829

29-
set(CMAKE_C_STANDARD_REQUIRED TRUE)
30-
set(CMAKE_CXX_STANDARD_REQUIRED TRUE)
30+
# Using DYAD-specific versions of these variables so that we don't risk
31+
# polluting user CMake scripts
32+
set(DYAD_C_STANDARD_REQUIRED TRUE)
33+
set(DYAD_CXX_STANDARD_REQUIRED TRUE)
3134

3235
# Record the various flags and switches accumlated in DYAD
3336
set(DYAD_GNU_LINUX @DYAD_GNU_LINUX@)

cmake/modules/SetupCompiler.cmake

Lines changed: 27 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -26,14 +26,20 @@ include(CheckIncludeFileCXX)
2626

2727
MACRO (CHECK_GLIBC_VERSION)
2828
EXECUTE_PROCESS (
29-
COMMAND ${CMAKE_C_COMPILER} -print-file-name=libc.so.6
30-
OUTPUT_VARIABLE GLIBC
31-
OUTPUT_STRIP_TRAILING_WHITESPACE)
32-
33-
GET_FILENAME_COMPONENT (GLIBC ${GLIBC} REALPATH)
34-
GET_FILENAME_COMPONENT (GLIBC_VERSION ${GLIBC} NAME)
35-
STRING (REPLACE "libc-" "" GLIBC_VERSION ${GLIBC_VERSION})
36-
STRING (REPLACE ".so" "" GLIBC_VERSION ${GLIBC_VERSION})
29+
COMMAND ${CMAKE_C_COMPILER} ${CMAKE_SOURCE_DIR}/cmake/tests/check_glibc_version.c -o ${CMAKE_BINARY_DIR}/check_glibc_version
30+
RESULT_VARIABLE COULD_COMPILE_GLIBC_CHECKER)
31+
if (NOT COULD_COMPILE_GLIBC_CHECKER EQUAL 0)
32+
message(FATAL_ERROR "Could not compile glibc version checker")
33+
endif ()
34+
EXECUTE_PROCESS(
35+
COMMAND ${CMAKE_BINARY_DIR}/check_glibc_version
36+
OUTPUT_VARIABLE GLIBC_VERSION
37+
OUTPUT_STRIP_TRAILING_WHITESPACE
38+
RESULT_VARIABLE COULD_GET_GLIBC_VERSION)
39+
if (NOT COULD_GET_GLIBC_VERSION EQUAL 0)
40+
message(FATAL_ERROR "Could not get glibc version")
41+
endif ()
42+
3743
IF (NOT GLIBC_VERSION MATCHES "^[0-9.]+$")
3844
MESSAGE (FATAL_ERROR "Unknown glibc version: ${GLIBC_VERSION}")
3945
ENDIF (NOT GLIBC_VERSION MATCHES "^[0-9.]+$")
@@ -89,11 +95,11 @@ macro(dyad_add_c_flags MY_FLAGS)
8995
endmacro()
9096

9197
dyad_add_cxx_flags(CMAKE_CXX_FLAGS
92-
-fPIC -Wall -Wextra -pedantic -Wno-unused-parameter -Wnon-virtual-dtor
98+
-Wall -Wextra -pedantic -Wno-unused-parameter -Wnon-virtual-dtor
9399
-Wno-deprecated-declarations)
94100

95101
dyad_add_c_flags(CMAKE_C_FLAGS
96-
-fPIC -Wall -Wextra -pedantic -Wno-unused-parameter
102+
-Wall -Wextra -pedantic -Wno-unused-parameter
97103
-Wno-deprecated-declarations)
98104

99105
if (${GLIBC_VERSION} VERSION_GREATER_EQUAL "2.19")
@@ -105,24 +111,13 @@ endif ()
105111
# Promote a compiler warning as an error for project targets
106112
################################################################
107113

108-
if (DYAD_WARNINGS_AS_ERRORS)
109-
dyad_add_cxx_flags(_WERROR_FLAGS -Werror)
110-
separate_arguments(_WERROR_FLAGS NATIVE_COMMAND "${_WERROR_FLAGS}")
111-
if (NOT TARGET DYAD_CXX_FLAGS_werror)
112-
add_library(DYAD_CXX_FLAGS_werror INTERFACE)
113-
set_property(TARGET DYAD_CXX_FLAGS_werror PROPERTY
114-
INTERFACE_COMPILE_OPTIONS $<$<COMPILE_LANGUAGE:CXX>:${_WERROR_FLAGS}>)
115-
116-
add_library(DYAD_C_FLAGS_werror INTERFACE)
117-
set_property(TARGET DYAD_C_FLAGS_werror PROPERTY
118-
INTERFACE_COMPILE_OPTIONS $<$<COMPILE_LANGUAGE:C>:${_WERROR_FLAGS}>)
119-
120-
# Add the "library" to the export
121-
install(TARGETS DYAD_C_FLAGS_werror EXPORT ${DYAD_EXPORTED_TARGETS})
122-
install(TARGETS DYAD_CXX_FLAGS_werror EXPORT ${DYAD_EXPORTED_TARGETS})
123-
endif ()
124-
endif ()
125-
114+
macro(dyad_add_werror_if_needed target)
115+
if (DYAD_WARNINGS_AS_ERRORS)
116+
target_compile_options(${target} PRIVATE
117+
$<$<COMPILER_LANGUAGE:CXX>:"-Werror">
118+
$<$<COMPILER_LANGUAGE:C>:"-Werror">)
119+
endif()
120+
endmacro(dyad_add_werror_if_needed target)
126121

127122
################################################################
128123
# Handle compiler dependent behaviors
@@ -194,25 +189,17 @@ set(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE)
194189

195190
# Add the automatically determined parts of the RPATH
196191
# which point to directories outside the build tree to the install RPATH
197-
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
198-
199-
if (NOT DYAD_LIBDIR)
200-
if (CMAKE_INSTALL_LIBDIR)
201-
set(DYAD_LIBDIR ${CMAKE_INSTALL_LIBDIR})
202-
else ()
203-
set(DYAD_LIBDIR "lib")
204-
endif ()
205-
endif ()
192+
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE CACHE BOOL "")
206193

207-
set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${DYAD_LIBDIR}")
194+
set(CMAKE_INSTALL_RPATH "${DYAD_INSTALL_LIBDIR}" CACHE STRING "")
208195

209196
list(FIND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES
210-
"${CMAKE_INSTALL_PREFIX}/${DYAD_LIBDIR}" _IS_SYSTEM_DIR)
197+
"${DYAD_INSTALL_LIBDIR}" _IS_SYSTEM_DIR)
211198

212199
if (${_IS_SYSTEM_DIR} STREQUAL "-1")
213200
# Set the install RPATH correctly
214201
list(APPEND CMAKE_INSTALL_RPATH
215-
"${CMAKE_INSTALL_PREFIX}/${DYAD_LIBDIR}")
202+
"${DYAD_INSTALL_LIBDIR}")
216203
endif ()
217204

218205

cmake/tests/check_glibc_version.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
#include <stdio.h>
2+
#include <gnu/libc-version.h>
3+
4+
int main(void)
5+
{
6+
puts(gnu_get_libc_version());
7+
return 0;
8+
}

0 commit comments

Comments
 (0)