Fossil SCM

fossil-scm / compat / zlib / contrib / blast / CMakeLists.txt
Blame History Raw 167 lines
1
cmake_minimum_required(VERSION 3.12...3.31)
2
3
project(
4
blast
5
VERSION 1.3.0
6
LANGUAGES C
7
DESCRIPTION "A library for creating zipfiles based in zlib"
8
HOMEPAGE_URL "https://www.zlib.net")
9
10
option(ZLIB_BLAST_BUILD_SHARED "Enable building blast shared library" ON)
11
option(ZLIB_BLAST_BUILD_STATIC "Enable building blast static library" ON)
12
option(ZLIB_BLAST_BUILD_TESTING "Enable building tests for blast" ON)
13
option(ZLIB_BLAST_INSTALL "Enable installation of blast" ON)
14
15
include(GNUInstallDirs)
16
include(CMakePackageConfigHelpers)
17
18
if(WIN32 OR CYGWIN)
19
set(zlibblast_static_suffix "s")
20
set(CMAKE_DEBUG_POSTFIX "d")
21
set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
22
endif(WIN32 OR CYGWIN)
23
24
function(blast_findTestEnv testName)
25
set(testEnv "PATH=")
26
27
if(MSVC OR MINGW)
28
set(separator "\\\;")
29
else()
30
set(separator ":")
31
endif()
32
33
string(APPEND testEnv "$<TARGET_FILE_DIR:BLAST::BLAST>${separator}")
34
string(APPEND testEnv "$ENV{PATH}")
35
36
set_tests_properties(${testName} PROPERTIES ENVIRONMENT "${testEnv}")
37
endfunction(blast_findTestEnv testName)
38
39
if(ZLIB_BLAST_BUILD_SHARED)
40
add_library(zlib_blast_blast SHARED
41
blast.c
42
blast.h)
43
44
add_library(BLAST::BLAST ALIAS zlib_blast_blast)
45
46
if(NOT CYGWIN)
47
set_target_properties(zlib_blast_blast
48
PROPERTIES
49
SOVERSION ${blast_VERSION_MAJOR}
50
VERSION ${blast_VERSION})
51
endif(NOT CYGWIN)
52
53
set_target_properties(zlib_blast_blast
54
PROPERTIES
55
EXPORT_NAME BLAST
56
OUTPUT_NAME blast)
57
58
if(ZLIB_BLAST_BUILD_TESTING)
59
enable_testing()
60
add_executable(zlib_blast_blast-test blast-test.c)
61
target_link_libraries(zlib_blast_blast-test PRIVATE zlib_blast_blast)
62
63
add_test(NAME zlib_blast_blast-test
64
COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_SOURCE_DIR}/tester.cmake
65
"$<TARGET_FILE:zlib_blast_blast-test>"
66
"${CMAKE_CURRENT_SOURCE_DIR}"
67
"${CMAKE_CURRENT_BINARY_DIR}")
68
69
if(MSVC
70
OR MSYS
71
OR MINGW
72
OR CYGWIN)
73
blast_findtestenv(zlib_blast_blast-test)
74
endif(
75
MSVC
76
OR MSYS
77
OR MINGW
78
OR CYGWIN)
79
endif(ZLIB_BLAST_BUILD_TESTING)
80
endif(ZLIB_BLAST_BUILD_SHARED)
81
82
if(ZLIB_BLAST_BUILD_STATIC)
83
add_library(zlib_blast_blastStatic STATIC
84
blast.c
85
blast.h)
86
87
add_library(BLAST::BLASTSTATIC ALIAS zlib_blast_blastStatic)
88
89
set_target_properties(zlib_blast_blastStatic
90
PROPERTIES
91
EXPORT_NAME BLASTSTATIC
92
OUTPUT_NAME blast${zlibblast_static_suffix})
93
94
if(ZLIB_BLAST_BUILD_TESTING)
95
enable_testing()
96
add_executable(zlib_blast_testStatic blast-test.c)
97
target_link_libraries(zlib_blast_testStatic
98
PRIVATE zlib_blast_blastStatic)
99
100
add_test(NAME zlib_blast_testStatic
101
COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_SOURCE_DIR}/tester.cmake
102
"$<TARGET_FILE:zlib_blast_testStatic>"
103
"${CMAKE_CURRENT_SOURCE_DIR}"
104
"${CMAKE_CURRENT_BINARY_DIR}")
105
endif(ZLIB_BLAST_BUILD_TESTING)
106
endif(ZLIB_BLAST_BUILD_STATIC)
107
108
if(ZLIB_BLAST_BUILD_TESTING)
109
add_subdirectory(test)
110
endif(ZLIB_BLAST_BUILD_TESTING)
111
112
if(ZLIB_BLAST_INSTALL)
113
if(ZLIB_BLAST_BUILD_SHARED)
114
install(
115
TARGETS zlib_blast_blast
116
COMPONENT Runtime
117
EXPORT zlibBlastSharedExport
118
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
119
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}")
120
install(
121
EXPORT zlibBlastSharedExport
122
FILE blast-shared.cmake
123
NAMESPACE BLAST::
124
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/blast)
125
126
if(MSVC)
127
install(
128
FILES $<TARGET_PDB_FILE:zlib_blast_blast>
129
COMPONENT Development
130
DESTINATION ${CMAKE_INSTALL_BINDIR}
131
CONFIGURATIONS Debug OR RelWithDebInfo
132
OPTIONAL)
133
endif(MSVC)
134
endif(ZLIB_BLAST_BUILD_SHARED)
135
136
if(ZLIB_BLAST_BUILD_STATIC)
137
install(
138
TARGETS zlib_blast_blastStatic
139
COMPONENT Development
140
EXPORT zlibBlastStaticExport
141
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}")
142
install(
143
EXPORT zlibBlastStaticExport
144
FILE blast-static.cmake
145
NAMESPACE BLAST::
146
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/blast)
147
endif(ZLIB_BLAST_BUILD_STATIC)
148
149
configure_package_config_file(
150
${blast_SOURCE_DIR}/blastConfig.cmake.in
151
${blast_BINARY_DIR}/blastConfig.cmake
152
INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/blast)
153
154
write_basic_package_version_file(
155
"${blast_BINARY_DIR}/blastConfigVersion.cmake"
156
VERSION "${blast_VERSION}"
157
COMPATIBILITY AnyNewerVersion)
158
159
install(FILES ${blast_BINARY_DIR}/blastConfig.cmake
160
${blast_BINARY_DIR}/blastConfigVersion.cmake
161
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/blast)
162
install(
163
FILES blast.h
164
COMPONENT Development
165
DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}")
166
endif(ZLIB_BLAST_INSTALL)
167

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button