@@ -2,9 +2,58 @@ cmake_minimum_required(VERSION 3.15)
22
33set (CMAKE_VERBOSE_MAKEFILE ON CACHE BOOL "Enable verbose output" )
44
5- project (tapp-reference LANGUAGES C)
5+ # see https://semver.org/
6+ set (TAPP_REFERENCE_MAJOR_VERSION 0)
7+ set (TAPP_REFERENCE_MINOR_VERSION 5)
8+ set (TAPP_REFERENCE_PATCH_VERSION 0)
9+ set (TAPP_REFERENCE_PRERELEASE_ID )
10+ set (TAPP_REFERENCE_BUILD_ID )
11+
12+ set (TAPP_REFERENCE_VERSION "${TAPP_REFERENCE_MAJOR_VERSION} .${TAPP_REFERENCE_MINOR_VERSION} .${TAPP_REFERENCE_PATCH_VERSION} " )
13+ if (TAPP_REFERENCE_PRERELEASE_ID)
14+ set (TAPP_REFERENCE_EXT_VERSION "${TAPP_REFERENCE_VERSION} -${TAPP_REFERENCE_PRERELEASE_ID} " )
15+ else (TAPP_REFERENCE_PRERELEASE_ID)
16+ set (TAPP_REFERENCE_EXT_VERSION "${TAPP_REFERENCE_VERSION} " )
17+ endif (TAPP_REFERENCE_PRERELEASE_ID)
18+ if (TAPP_REFERENCE_BUILD_ID)
19+ set (TAPP_REFERENCE_EXT_VERSION "${TAPP_REFERENCE_EXT_VERSION} +${TAPP_REFERENCE_BUILD_ID} " )
20+ endif (TAPP_REFERENCE_BUILD_ID)
21+
22+ # Extract the git revision tag information
23+ if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR} /.git)
24+ find_package (Git REQUIRED)
25+ execute_process (
26+ COMMAND ${GIT_EXECUTABLE} rev-parse -q HEAD
27+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
28+ OUTPUT_VARIABLE TAPP_REFERENCE_REVISION )
29+ string (REGEX MATCH "[0-9a-f]*"
30+ TAPP_REFERENCE_REVISION "${TAPP_REFERENCE_REVISION} " )
31+ else ()
32+ set (TAPP_REFERENCE_REVISION "unknown" )
33+ endif ()
634
7- # this provides TAPP API target
35+ project (tapp-reference
36+ VERSION ${TAPP_REFERENCE_VERSION}
37+ DESCRIPTION "Reference Implementation of TAPP (Tensor Algebra Processing Primitives)"
38+ LANGUAGES C
39+ HOMEPAGE_URL "https://github.com/TAPPOrg/" )
40+
41+ include (GNUInstallDirs)
42+
43+ set (TAPP_REFERENCE_INSTALL_BINDIR "bin"
44+ CACHE PATH "TAPP REFERENCE binary install directory" )
45+ set (TAPP_REFERENCE_INSTALL_INCLUDEDIR "include"
46+ CACHE PATH "TAPP REFERENCE INCLUDE install directory" )
47+ set (TAPP_REFERENCE_INSTALL_LIBDIR "lib"
48+ CACHE PATH "TAPP REFERENCE LIB install directory" )
49+ set (TAPP_REFERENCE_INSTALL_DATADIR "share/mpqc/${TAPP_REFERENCE_EXT_VERSION} /data"
50+ CACHE PATH "TAPP REFERENCE DATA install directory" )
51+ set (TAPP_REFERENCE_INSTALL_DOCDIR "share/tapp/${TAPP_REFERENCE_EXT_VERSION} /doc"
52+ CACHE PATH "TAPP REFERENCE DOC install directory" )
53+ set (TAPP_REFERENCE_INSTALL_CMAKEDIR "lib/cmake/mpqc"
54+ CACHE PATH "TAPP REFERENCE CMAKE install directory" )
55+
56+ # this provides tapp-api target
857add_subdirectory (api)
958
1059add_library (tapp-reference SHARED)
@@ -161,7 +210,7 @@ target_sources(
161210 target_link_libraries (
162211 demo
163212 PRIVATE
164- tapp-reference # Linking to tapp provides everything needed.
213+ tapp-reference
165214 )
166215
167216
@@ -189,7 +238,7 @@ target_sources(
189238 target_link_libraries (
190239 driver
191240 PRIVATE
192- tapp # Linking to tapp provides everything needed.
241+ tapp-reference
193242 )
194243
195244
@@ -218,7 +267,7 @@ if(BUILD_EXERCISE)
218267 target_link_libraries (
219268 exercise_contraction
220269 PRIVATE
221- tapp # Linking to tapp provides everything needed.
270+ tapp-reference
222271 )
223272
224273
@@ -247,7 +296,7 @@ target_sources(
247296 target_link_libraries (
248297 exercise_contraction_answers
249298 PRIVATE
250- tapp # Linking to tapp provides everything needed.
299+ tapp-reference
251300 )
252301
253302
@@ -269,7 +318,7 @@ target_sources(
269318 target_link_libraries (
270319 exercise_tucker
271320 PRIVATE
272- tapp # Linking to tapp provides everything needed.
321+ tapp-reference
273322 )
274323
275324 add_library (exercise_tucker_answers SHARED)
@@ -285,5 +334,5 @@ target_sources(
285334 target_link_libraries (
286335 exercise_tucker_answers
287336 PRIVATE
288- tapp # Linking to tapp provides everything needed.
337+ tapp-reference
289338 )
0 commit comments