-
Notifications
You must be signed in to change notification settings - Fork 200
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
79 lines (71 loc) · 2.54 KB
/
Copy pathCMakeLists.txt
File metadata and controls
79 lines (71 loc) · 2.54 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
# The VC revision include that we want to generate.
if (LLVM_EXTERNAL_CLAD_SOURCE_DIR)
set(version_file ${LLVM_EXTERNAL_CLAD_SOURCE_DIR}/VERSION)
else()
set(version_file ${CMAKE_SOURCE_DIR}/VERSION)
endif(LLVM_EXTERNAL_CLAD_SOURCE_DIR)
set(version_inc ${CMAKE_CURRENT_BINARY_DIR}/VCSVersion.inc)
set(generate_vcs_version_script ${LLVM_CMAKE_DIR}/GenerateVersionFromVCS.cmake)
find_first_existing_vc_file(${CMAKE_SOURCE_DIR} clad_vc)
# Create the VCSVersion.inc
add_custom_command(OUTPUT "${version_inc}"
DEPENDS ${clad_vc} ${generate_vcs_version_script}
COMMAND ${CMAKE_COMMAND} "-DNAMES=\"CLAD\""
"-DCLAD_SOURCE_DIR=${CMAKE_SOURCE_DIR}"
"-DLLVM_DIR=${LLVM_CMAKE_DIR}"
"-DCMAKE_MODULE_PATH=${LLVM_CMAKE_DIR}"
"-DHEADER_FILE=${version_inc}"
-P "${generate_vcs_version_script}")
# Mark the generated header as being generated.
set_source_files_properties("${version_inc}"
PROPERTIES GENERATED TRUE
HEADER_FILE_ONLY TRUE)
set_property(SOURCE Version.cpp APPEND PROPERTY
COMPILE_DEFINITIONS "HAVE_VCS_VERSION_INC")
# Configure the Version.inc file.
file(STRINGS ${version_file} CLAD_VERSION)
string(REPLACE "." ";" VERSION_LIST "${CLAD_VERSION}")
list(GET VERSION_LIST 0 CLAD_VERSION_MAJOR)
list(GET VERSION_LIST 1 CLAD_VERSION_MINOR)
list(GET VERSION_LIST 2 CLAD_VERSION_PATCH)
if (LLVM_EXTERNAL_CLAD_SOURCE_DIR)
configure_file(
${LLVM_EXTERNAL_CLAD_SOURCE_DIR}/include/clad/Differentiator/Version.inc.in
${CMAKE_BINARY_DIR}/include/clad/Differentiator/Version.inc)
else()
configure_file(
${CMAKE_SOURCE_DIR}/include/clad/Differentiator/Version.inc.in
${CMAKE_BINARY_DIR}/include/clad/Differentiator/Version.inc)
endif(LLVM_EXTERNAL_CLAD_SOURCE_DIR)
# (Ab)use llvm facilities for adding libraries.
llvm_add_library(cladDifferentiator
STATIC
ActivityAnalyzer.cpp
AnalysisBase.cpp
BaseForwardModeVisitor.cpp
BaseForwardModeVisitorOpenMP.cpp
CladUtils.cpp
ConstantFolder.cpp
DerivativeBuilder.cpp
DerivedFnCollector.cpp
DerivedFnInfo.cpp
DiffPlanner.cpp
ErrorEstimator.cpp
JacobianModeVisitor.cpp
HessianModeVisitor.cpp
MultiplexExternalRMVSource.cpp
PushForwardModeVisitor.cpp
ReverseModeForwPassVisitor.cpp
ReverseModeVisitor.cpp
ReverseModeVisitorCUDA.cpp
ReverseModeVisitorOpenMP.cpp
TBRAnalyzer.cpp
Timers.cpp
StmtClone.cpp
UsefulAnalyzer.cpp
VectorForwardModeVisitor.cpp
VectorPushForwardModeVisitor.cpp
Version.cpp
VisitorBase.cpp
${version_inc}
)