/alps/pcitool

To get this branch, use:
bzr branch http://darksoft.org/webbzr/alps/pcitool

« back to all changes in this revision

Viewing changes to CMakeLists.txt

  • Committer: Suren A. Chilingaryan
  • Date: 2016-03-05 15:16:13 UTC
  • Revision ID: csa@suren.me-20160305151613-y724owo6n62xv4f2
Handle build.h in releases

Show diffs side-by-side

added added

removed removed

Lines of Context:
68
68
 
69
69
SET(ENV{PKG_CONFIG_PATH} "${LIB_INSTALL_DIR}/pkgconfig:$ENV{PKG_CONFIG_PATH}")
70
70
 
 
71
set(EXTRA_SYSTEM_LIBS -lrt)
 
72
add_definitions("-fPIC --std=c99 -Wall -O2 -gdwarf-2 -g3 -fno-omit-frame-pointer")
 
73
#add_definitions("-fPIC --std=c99 -Wall -O2")
 
74
 
 
75
include(cmake/version.cmake)
 
76
VERSION_TO_VARS(${PCILIB_VERSION} PCILIB_VERSION_MAJOR PCILIB_VERSION_MINOR PCILIB_VERSION_MICRO)
 
77
 
71
78
find_package(PkgConfig REQUIRED)
72
79
find_package(Threads REQUIRED)
73
80
find_package(Doxygen)
102
109
    set(DISABLE_SERVERS TRUE)
103
110
endif (NOT HAVE_PYTHON)
104
111
 
105
 
set(EXTRA_SYSTEM_LIBS -lrt)
106
 
 
107
112
include(CheckIncludeFiles)
108
113
check_include_files(stdatomic.h HAVE_STDATOMIC_H)
109
114
 
121
126
    pkg_check_modules(FASTWRITER fastwriter REQUIRED)
122
127
endif (NOT DISABLE_PCITOOL)
123
128
 
124
 
add_definitions("-fPIC --std=c99 -Wall -O2 -gdwarf-2 -g3 -fno-omit-frame-pointer")
125
 
#add_definitions("-fPIC --std=c99 -Wall -O2")
126
 
 
127
 
include(cmake/version.cmake)
128
 
 
129
 
VERSION_TO_VARS(${PCILIB_VERSION} PCILIB_VERSION_MAJOR PCILIB_VERSION_MINOR PCILIB_VERSION_MICRO)
130
 
 
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}
135
 
)
136
 
set_source_files_properties(${CMAKE_BINARY_DIR}/pcilib/build.h PROPERTIES GENERATED TRUE)
137
 
 
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")
144
 
 
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}")
154
 
include(CPack)
155
 
 
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)
158
 
 
159
129
 
160
130
add_subdirectory(dma)
161
131
add_subdirectory(protocols)
169
139
    add_subdirectory(pywrap)
170
140
endif (HAVE_PYTHON)
171
141
 
172
 
set_target_properties(pcilib PROPERTIES
173
 
    VERSION ${PCILIB_VERSION}
174
 
    SOVERSION ${PCILIB_ABI_VERSION}
175
 
)
176
 
 
 
142
set_target_properties(pcilib PROPERTIES VERSION ${PCILIB_VERSION} SOVERSION ${PCILIB_ABI_VERSION})
177
143
add_custom_target(docs
178
144
    COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/docs/Doxyfile 
179
145
    WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/docs
181
147
)
182
148
set_directory_properties(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "docs/html")
183
149
 
184
 
 
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)
196
 
 
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
203
 
    )
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
207
 
    )
208
 
endif(NOT CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR)
209
 
 
210
150
install(FILES 
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)
228
168
 
 
169
 
 
170
 
 
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")
 
177
 
 
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}")
 
187
include(CPack)
 
188
 
 
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}
 
194
    )
 
195
    add_dependencies(pcilib build)
 
196
    add_dependencies(pci build)
 
197
 
 
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}
 
203
    )
 
204
    add_custom_target(dist DEPENDS dist_prepare COMMAND ${CMAKE_MAKE_PROGRAM} package_source)
 
205
 
 
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/)
 
209
 
 
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
 
216
    )
 
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
 
220
    )
 
221
endif(NOT CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR)
 
222
 
 
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)
 
234
 
 
235
 
229
236
message("-- Configured pcitool ${PCILIB_VERSION_MAJOR}.${PCILIB_VERSION_MINOR}.${PCILIB_VERSION_MICRO} with public ABI ${PCILIB_ABI_VERSION}")