Skip to content

Commit 47662a6

Browse files
author
Kent Knox
committed
Merge pull request #68 from glehmann/cmake-config
install clBLAS cmake configuration and version file :+1: approved
2 parents 914f88a + 554d61e commit 47662a6

File tree

4 files changed

+72
-2
lines changed

4 files changed

+72
-2
lines changed

src/CMakeLists.txt

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -297,6 +297,26 @@ if( BUILD_TEST )
297297
endif( )
298298
endif( )
299299

300+
if(WIN32)
301+
set(destdir CMake)
302+
else()
303+
set(destdir share/clBLAS)
304+
endif()
305+
string(REGEX REPLACE "[^/]+" ".." reldir "${destdir}")
306+
configure_file(
307+
${CMAKE_CURRENT_SOURCE_DIR}/clBLASConfigVersion.cmake.in
308+
${CMAKE_CURRENT_BINARY_DIR}/clBLASConfigVersion.cmake
309+
@ONLY)
310+
configure_file(
311+
${CMAKE_CURRENT_SOURCE_DIR}/clBLASConfig.cmake.in
312+
${CMAKE_CURRENT_BINARY_DIR}/clBLASConfig.cmake
313+
@ONLY)
314+
install(EXPORT Library DESTINATION ${destdir} FILE clBLASTargets.cmake)
315+
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/clBLASConfigVersion.cmake
316+
${CMAKE_CURRENT_BINARY_DIR}/clBLASConfig.cmake
317+
DESTINATION ${destdir})
318+
319+
300320
# The following code is setting variables to control the behavior of CPack to generate our
301321
if( WIN32 )
302322
set( CPACK_SOURCE_GENERATOR "ZIP" )

src/clBLASConfig.cmake.in

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
include(${CMAKE_CURRENT_LIST_DIR}/clBLASTargets.cmake)
2+
get_filename_component(CLBLAS_INCLUDE_DIRS ${CMAKE_CURRENT_LIST_DIR}/@reldir@/include ABSOLUTE)
3+
set(CLBLAS_LIBRARIES clBLAS)

src/clBLASConfigVersion.cmake.in

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
# This is a basic version file for the Config-mode of find_package().
2+
# It is used by write_basic_package_version_file() as input file for configure_file()
3+
# to create a version-file which can be installed along a config.cmake file.
4+
#
5+
# The created file sets PACKAGE_VERSION_EXACT if the current version string and
6+
# the requested version string are exactly the same and it sets
7+
# PACKAGE_VERSION_COMPATIBLE if the current version is >= requested version,
8+
# but only if the requested major version is the same as the current one.
9+
# The variable CLBLAS_VERSION must be set before calling configure_file().
10+
11+
12+
set(PACKAGE_VERSION "@CLBLAS_VERSION@")
13+
14+
if("${PACKAGE_VERSION}" VERSION_LESS "${PACKAGE_FIND_VERSION}" )
15+
set(PACKAGE_VERSION_COMPATIBLE FALSE)
16+
else()
17+
18+
if("@CLBLAS_VERSION@" MATCHES "^([0-9]+)\\.")
19+
set(CLBLAS_VERSION_MAJOR "${CMAKE_MATCH_1}")
20+
else()
21+
set(CLBLAS_VERSION_MAJOR "@CLBLAS_VERSION@")
22+
endif()
23+
24+
if("${PACKAGE_FIND_VERSION_MAJOR}" STREQUAL "${CLBLAS_VERSION_MAJOR}")
25+
set(PACKAGE_VERSION_COMPATIBLE TRUE)
26+
else()
27+
set(PACKAGE_VERSION_COMPATIBLE FALSE)
28+
endif()
29+
30+
if( "${PACKAGE_FIND_VERSION}" STREQUAL "${PACKAGE_VERSION}")
31+
set(PACKAGE_VERSION_EXACT TRUE)
32+
endif()
33+
endif()
34+
35+
36+
# if the installed or the using project don't have CMAKE_SIZEOF_VOID_P set, ignore it:
37+
if("${CMAKE_SIZEOF_VOID_P}" STREQUAL "" OR "@CMAKE_SIZEOF_VOID_P@" STREQUAL "")
38+
return()
39+
endif()
40+
41+
# check that the installed version has the same 32/64bit-ness as the one which is currently searching:
42+
if(NOT "${CMAKE_SIZEOF_VOID_P}" STREQUAL "@CMAKE_SIZEOF_VOID_P@")
43+
math(EXPR installedBits "@CMAKE_SIZEOF_VOID_P@ * 8")
44+
set(PACKAGE_VERSION "${PACKAGE_VERSION} (${installedBits}bit)")
45+
set(PACKAGE_VERSION_UNSUITABLE TRUE)
46+
endif()

src/library/CMakeLists.txt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -316,8 +316,9 @@ target_link_libraries(clBLAS ${OPENCL_LIBRARIES} ${MATH_LIBRARY})
316316

317317
# CPack configuration; include the executable into the package
318318
install( TARGETS clBLAS
319-
RUNTIME DESTINATION bin${SUFFIX_BIN}
320-
LIBRARY DESTINATION lib${SUFFIX_LIB}
319+
EXPORT Library
320+
RUNTIME DESTINATION bin${SUFFIX_BIN}
321+
LIBRARY DESTINATION lib${SUFFIX_LIB}
321322
ARCHIVE DESTINATION lib${SUFFIX_LIB}/import
322323
)
323324

0 commit comments

Comments
 (0)