Skip to content

Commit bcde65c

Browse files
committed
[cmake] more boilerplate for the tapp-reference project
1 parent c8bb979 commit bcde65c

File tree

1 file changed

+57
-8
lines changed

1 file changed

+57
-8
lines changed

CMakeLists.txt

Lines changed: 57 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,58 @@ cmake_minimum_required(VERSION 3.15)
22

33
set(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
857
add_subdirectory(api)
958

1059
add_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

Comments
 (0)