121
126
pkg_check_modules(FASTWRITER fastwriter REQUIRED)
122
127
endif (NOT DISABLE_PCITOOL)
124
add_definitions("-fPIC --std=c99 -Wall -O2 -gdwarf-2 -g3 -fno-omit-frame-pointer")
125
#add_definitions("-fPIC --std=c99 -Wall -O2")
127
include(cmake/version.cmake)
129
VERSION_TO_VARS(${PCILIB_VERSION} PCILIB_VERSION_MAJOR PCILIB_VERSION_MINOR PCILIB_VERSION_MICRO)
131
add_custom_target(build)
132
add_custom_command(TARGET build
133
COMMAND ${CMAKE_COMMAND} -DPCILIB_SOURCE_DIR=${CMAKE_SOURCE_DIR} -DPCILIB_BINARY_DIR=${CMAKE_BINARY_DIR} -P ${CMAKE_SOURCE_DIR}/cmake/build.cmake
134
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
136
set_source_files_properties(${CMAKE_BINARY_DIR}/pcilib/build.h PROPERTIES GENERATED TRUE)
138
set(TARNAME "pcitool")
139
set(PACKAGE_VERSION ${PCILIB_VERSION})
140
set(PACKAGE_NAME "${TARNAME}")
141
set(PACKAGE_TARNAME "${TARNAME}")
142
set(PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}")
143
set(PACKAGE_BUGREPORT "http://ufo.kit.edu/ufo/newticket")
145
set(CPACK_SOURCE_GENERATOR "TBZ2")
146
set(CPACK_PACKAGE_CONTACT "Suren A. Chilingaryan <csa@suren.me>")
147
if (${RELEASE} GREATER 0)
148
set(CPACK_PACKAGE_VERSION "${PACKAGE_VERSION}.${RELEASE}")
149
else (${RELEASE} GREATER 0)
150
set(CPACK_PACKAGE_VERSION "${PACKAGE_VERSION}")
151
endif (${RELEASE} GREATER 0)
152
set(CPACK_SOURCE_IGNORE_FILES "/.bzr/;CMakeFiles;_CPack_Packages;cmake_install.cmake;CPack.*.cmake;CMakeCache.txt;install_manifest.txt;config.h$;.pc$;Makefile;.tar.bz2$;~$;${CPACK_SOURCE_IGNORE_FILES}")
153
set(CPACK_SOURCE_PACKAGE_FILE_NAME "${CMAKE_PROJECT_NAME}-${CPACK_PACKAGE_VERSION}")
156
add_custom_target(dist_clean COMMAND ${CMAKE_MAKE_PROGRAM} clean WORKING_DIRECTORY ${CMAKE_CURRENT_DIR})
157
add_custom_target(dist DEPENDS dist_clean COMMAND ${CMAKE_MAKE_PROGRAM} package_source)
160
130
add_subdirectory(dma)
161
131
add_subdirectory(protocols)
182
148
set_directory_properties(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "docs/html")
185
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/pcitool.spec.in ${CMAKE_CURRENT_BINARY_DIR}/pcitool.spec)
186
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/misc/dkms.conf.in ${CMAKE_CURRENT_BINARY_DIR}/misc/dkms.conf)
187
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/misc/pcitool.pc.in ${CMAKE_CURRENT_BINARY_DIR}/misc/pcitool.pc)
188
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/pcilib/config.h.in ${CMAKE_CURRENT_BINARY_DIR}/pcilib/config.h)
189
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/pcilib/version.h.in ${CMAKE_CURRENT_BINARY_DIR}/pcilib/version.h)
190
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/docs/Doxyfile.in ${CMAKE_CURRENT_BINARY_DIR}/docs/Doxyfile)
191
if (NOT DISABLE_SERVERS)
192
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/misc/pcilib_api.service.in ${CMAKE_CURRENT_BINARY_DIR}/misc/pcilib_api.service)
193
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/misc/pcilib_html.service.in ${CMAKE_CURRENT_BINARY_DIR}/misc/pcilib_html.service)
194
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/misc/pcilib.sysconfig.in ${CMAKE_CURRENT_BINARY_DIR}/misc/pcilib.sysconfig)
195
endif (NOT DISABLE_SERVERS)
197
if (NOT CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR)
198
file(COPY ${CMAKE_SOURCE_DIR}/xml DESTINATION ${CMAKE_BINARY_DIR})
199
file(COPY ${CMAKE_SOURCE_DIR}/pyserver DESTINATION ${CMAKE_BINARY_DIR})
200
file(COPY ${CMAKE_SOURCE_DIR}/pci
201
DESTINATION ${CMAKE_BINARY_DIR}
202
FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
204
file(COPY ${CMAKE_SOURCE_DIR}/run
205
DESTINATION ${CMAKE_BINARY_DIR}
206
FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
208
endif(NOT CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR)
211
151
${CMAKE_CURRENT_BINARY_DIR}/misc/pcitool.pc
212
152
DESTINATION ${LIB_INSTALL_DIR}/pkgconfig
226
166
install(DIRECTORY ${DIRS_TO_DEPLOY} DESTINATION ${PCILIB_SERVER_DIR})
227
167
endif (NOT DISABLE_SERVERS)
171
set(TARNAME "pcitool")
172
set(PACKAGE_VERSION ${PCILIB_VERSION})
173
set(PACKAGE_NAME "${TARNAME}")
174
set(PACKAGE_TARNAME "${TARNAME}")
175
set(PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}")
176
set(PACKAGE_BUGREPORT "http://ufo.kit.edu/ufo/newticket")
178
set(CPACK_SOURCE_GENERATOR "TBZ2")
179
set(CPACK_PACKAGE_CONTACT "Suren A. Chilingaryan <csa@suren.me>")
180
if (${RELEASE} GREATER 0)
181
set(CPACK_PACKAGE_VERSION "${PACKAGE_VERSION}.${RELEASE}")
182
else (${RELEASE} GREATER 0)
183
set(CPACK_PACKAGE_VERSION "${PACKAGE_VERSION}")
184
endif (${RELEASE} GREATER 0)
185
set(CPACK_SOURCE_IGNORE_FILES "/build/;/.bzr/;CMakeFiles;_CPack_Packages;cmake_install.cmake;CPack.*.cmake;CMakeCache.txt;install_manifest.txt;config.h$;.pc$;Makefile;.tar.bz2$;~$;${CPACK_SOURCE_IGNORE_FILES}")
186
set(CPACK_SOURCE_PACKAGE_FILE_NAME "${CMAKE_PROJECT_NAME}-${CPACK_PACKAGE_VERSION}")
189
# In releases, we just keep the pre-generated build.h
190
if(EXISTS ${CMAKE_SOURCE_DIR}/.bzr/)
191
add_custom_target(build
192
COMMAND ${CMAKE_COMMAND} -DPCILIB_SOURCE_DIR=${CMAKE_SOURCE_DIR} -DPCILIB_BINARY_DIR=${CMAKE_BINARY_DIR} -P ${CMAKE_SOURCE_DIR}/cmake/build.cmake
193
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
195
add_dependencies(pcilib build)
196
add_dependencies(pci build)
198
# We need to generate build.h for source releases
199
add_custom_target(dist_clean COMMAND ${CMAKE_MAKE_PROGRAM} clean WORKING_DIRECTORY ${CMAKE_CURRENT_DIR})
200
add_custom_target(dist_prepare DEPENDS dist_clean
201
COMMAND ${CMAKE_COMMAND} -DPCILIB_SOURCE_DIR=${CMAKE_SOURCE_DIR} -DPCILIB_BINARY_DIR=${CMAKE_SOURCE_DIR} -DPCILIB_RELEASE=${CPACK_PACKAGE_VERSION} -P ${CMAKE_SOURCE_DIR}/cmake/build.cmake
202
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
204
add_custom_target(dist DEPENDS dist_prepare COMMAND ${CMAKE_MAKE_PROGRAM} package_source)
206
set_source_files_properties(${CMAKE_BINARY_DIR}/pcilib/build.h PROPERTIES GENERATED TRUE)
207
set_source_files_properties(${CMAKE_SOURCE_DIR}/pcilib/build.h PROPERTIES GENERATED TRUE)
208
endif(EXISTS ${CMAKE_SOURCE_DIR}/.bzr/)
210
if (NOT CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR)
211
file(COPY ${CMAKE_SOURCE_DIR}/xml DESTINATION ${CMAKE_BINARY_DIR})
212
file(COPY ${CMAKE_SOURCE_DIR}/pyserver DESTINATION ${CMAKE_BINARY_DIR})
213
file(COPY ${CMAKE_SOURCE_DIR}/pci
214
DESTINATION ${CMAKE_BINARY_DIR}
215
FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
217
file(COPY ${CMAKE_SOURCE_DIR}/run
218
DESTINATION ${CMAKE_BINARY_DIR}
219
FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
221
endif(NOT CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR)
223
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/pcitool.spec.in ${CMAKE_CURRENT_BINARY_DIR}/pcitool.spec)
224
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/misc/dkms.conf.in ${CMAKE_CURRENT_BINARY_DIR}/misc/dkms.conf)
225
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/misc/pcitool.pc.in ${CMAKE_CURRENT_BINARY_DIR}/misc/pcitool.pc)
226
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/pcilib/config.h.in ${CMAKE_CURRENT_BINARY_DIR}/pcilib/config.h)
227
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/pcilib/version.h.in ${CMAKE_CURRENT_BINARY_DIR}/pcilib/version.h)
228
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/docs/Doxyfile.in ${CMAKE_CURRENT_BINARY_DIR}/docs/Doxyfile)
229
if (NOT DISABLE_SERVERS)
230
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/misc/pcilib_api.service.in ${CMAKE_CURRENT_BINARY_DIR}/misc/pcilib_api.service)
231
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/misc/pcilib_html.service.in ${CMAKE_CURRENT_BINARY_DIR}/misc/pcilib_html.service)
232
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/misc/pcilib.sysconfig.in ${CMAKE_CURRENT_BINARY_DIR}/misc/pcilib.sysconfig)
233
endif (NOT DISABLE_SERVERS)
229
236
message("-- Configured pcitool ${PCILIB_VERSION_MAJOR}.${PCILIB_VERSION_MINOR}.${PCILIB_VERSION_MICRO} with public ABI ${PCILIB_ABI_VERSION}")