Newer
Older
# CMake script for C++ X!TandemPipeline
# Author: Olivier Langella
# Created: 05/06/2015
# Global parameters
CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
PROJECT(xtpcpp CXX)
IF(NOT CMAKE_BUILD_TYPE)
# SET(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING
# "Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel."
# FORCE)
SET(CMAKE_BUILD_TYPE Debug CACHE STRING
"Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel."
FORCE)
ENDIF(NOT CMAKE_BUILD_TYPE)
MESSAGE("CMAKE_BUILD_TYPE : ${CMAKE_BUILD_TYPE}")
IF(CMAKE_BUILD_TYPE MATCHES "Release")
MESSAGE("compiling as release version")
ADD_DEFINITIONS("-DQT_NO_DEBUG_OUTPUT")
ENDIF( CMAKE_BUILD_TYPE MATCHES "Release" )
IF(CMAKE_BUILD_TYPE MATCHES "Debug")
MESSAGE("compiling as debug version")
ENDIF( CMAKE_BUILD_TYPE MATCHES "Debug" )
IF(CMAKE_BUILD_TYPE MATCHES "RelWithDebInfo")
MESSAGE("compiling as release with debug info version")
ENDIF( CMAKE_BUILD_TYPE MATCHES "RelWithDebInfo" )
#SET(CMAKE_CXX_FLAGS "-Wall -Weffc++ -Wshadow -Wconversion")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
configure_file (${CMAKE_SOURCE_DIR}/debian/control.cmake ${CMAKE_SOURCE_DIR}/debian/control @ONLY)
SET(SOFTWARE_NAME "XTPcpp")
SET(XTPCPP_VERSION_MAJOR "0")
SET(XTPCPP_VERSION "${XTPCPP_VERSION_MAJOR}.${XTPCPP_VERSION_MINOR}.${XTPCPP_VERSION_PATCH}")
# Set the CMAKE_PREFIX_PATH for the find_library fonction when using non
# standard install location
IF(CMAKE_INSTALL_PREFIX)
SET(CMAKE_PREFIX_PATH "${CMAKE_INSTALL_PREFIX}" ${CMAKE_PREFIX_PATH})
ENDIF(CMAKE_INSTALL_PREFIX)
# Subdirectories
ADD_SUBDIRECTORY(src)
# Doxygen
FIND_PACKAGE(Doxygen)
IF (DOXYGEN_FOUND)
ADD_CUSTOM_TARGET (apidoc cp Doxyfile ${CMAKE_BINARY_DIR}/Doxyfile-build
COMMAND echo "OUTPUT_DIRECTORY=${CMAKE_BINARY_DIR}" >> ${CMAKE_BINARY_DIR}/Doxyfile-build
COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_BINARY_DIR}/Doxyfile-build
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR})
ADD_CUSTOM_TARGET (apidoc-stable cp Doxyfile ${CMAKE_BINARY_DIR}/Doxyfile-stable
COMMAND echo "OUTPUT_DIRECTORY=${CMAKE_BINARY_DIR}" >> ${CMAKE_BINARY_DIR}/Doxyfile-stable
COMMAND echo "HTML_HEADER=header.html" >> ${CMAKE_BINARY_DIR}/Doxyfile-stable
COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_BINARY_DIR}/Doxyfile-stable
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR})
ENDIF (DOXYGEN_FOUND)
# Packager
SET(CPACK_PACKAGE_NAME "xtpcpp")
SET(CPACK_PACKAGE_VENDOR "PAPPSO Development Team")
SET(CPACK_PACKAGE_VERSION "${XTPCPP_VERSION}")
SET(CPACK_PACKAGE_VERSION_MAJOR "${XTPCPP_VERSION_MAJOR}")
SET(CPACK_PACKAGE_VERSION_MINOR "${XTPCPP_VERSION_MINOR}")
SET(CPACK_PACKAGE_VERSION_PATCH "${XTPCPP_VERSION_PATCH}")
SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "protein inference tool")
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/COPYING")
SET(CPACK_RESOURCE_FILE_AUTHORS "${CMAKE_SOURCE_DIR}/AUTHORS")
SET(CPACK_RESOURCE_FILE_INSTALL "${CMAKE_SOURCE_DIR}/INSTALL")
SET(CPACK_SOURCE_GENERATOR "TGZ")
SET(CPACK_SOURCE_IGNORE_FILES
"CMakeFiles"
"Makefile"
"_CPack_Packages"
"CMakeCache.txt"
".*\\\\.git"
".*\\\\.gz"
".*\\\\.deb"
".*\\\\.rpm"
".*\\\\.dmg"
".*\\\\..*\\\\.swp"
"src/\\\\..*"
"src/libbpp*"
"debian/tmp"
"debian/libbpp.*/"
"debian/libbpp.*\\\\.so.*"
"debian/libbpp.*\\\\.a"
"debian/libbpp.*\\\\.substvars"
"debian/libbpp.*\\\\.debhelper"
"debian/debhelper\\\\.log"
"build/"
"html"
"Core.tag"
"Testing"
"build-stamp"
"install_manifest.txt"
"DartConfiguration.tcl"
${CPACK_SOURCE_IGNORE_FILES}
)
#dch -Djessie "message"
#cmake ..
#make deb
# scp xtpcpp* proteus.moulon.inra.fr:/var/www/apt/incoming
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
# reprepro -Vb /var/www/apt processincoming default
#
# debuild -S -sa
# dput -f olivier-langella *changes
IF (MACOS)
SET(CPACK_GENERATOR "Bundle")
ENDIF()
SET(CPACK_SOURCE_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}")
SET(CPACK_DEBSOURCE_PACKAGE_FILE_NAME "lib${CMAKE_PROJECT_NAME}_${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}.orig")
INCLUDE(CPack)
#This adds the 'dist' target
ADD_CUSTOM_TARGET(dist COMMAND ${CMAKE_MAKE_PROGRAM} package_source)
# 'clean' is not (yet) a first class target. However, we need to clean the directories before building the sources:
IF("${CMAKE_GENERATOR}" MATCHES "Make")
ADD_CUSTOM_TARGET(make_clean
COMMAND ${CMAKE_MAKE_PROGRAM} clean
WORKING_DIRECTORY ${CMAKE_CURRENT_DIR}
)
ADD_DEPENDENCIES(dist make_clean)
ENDIF()
IF (UNIX)
#This creates deb packages:
add_custom_target(targz
cpack -G TGZ --config CPackSourceConfig.cmake && tar xvfz ${CPACK_PACKAGE_NAME}-${XTPCPP_VERSION}.tar.gz
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
COMMENT "Creating .tar.gz" VERBATIM
)
add_custom_target(deb
cd ${CPACK_PACKAGE_NAME}-${XTPCPP_VERSION} && dpkg-buildpackage
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
DEPENDS targz
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
COMMENT "Creating Debian package" VERBATIM
)
file(GLOB changesdebs "${CMAKE_BINARY_DIR}/${CPACK_PACKAGE_NAME}_*.dsc")
foreach(libfile ${changesdebs})
SET(changesdeb "${libfile}")
endforeach(libfile)
message ("changes debian file : ${changesdeb}")
#lintian -IEi --pedantic tandem-mass_2013.06.15-1_amd64.changes
add_custom_target(lintian
lintian -IEi --pedantic ${changesdeb}
DEPENDS deb
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
COMMENT "lintian check" VERBATIM
)
ENDIF()
SET(CTEST_UPDATE_TYPE git)
SET(UPDATE_COMMAND "git")
SET(UPDATE_OPTIONS "")
#ENABLE_TESTING()
#INCLUDE(CTest)
#IF (BUILD_TESTING)
# ADD_SUBDIRECTORY(test)
#ENDIF(BUILD_TESTING)
configure_file (${CMAKE_SOURCE_DIR}/templates/share/applications/xtpcpp.desktop.cmake ${CMAKE_BINARY_DIR}/templates/share/applications/xtpcpp.desktop)
INSTALL(PROGRAMS ${CMAKE_BINARY_DIR}/src/xtpcpp DESTINATION bin)
INSTALL(FILES ${CMAKE_BINARY_DIR}/templates/share/applications/xtpcpp.desktop DESTINATION share/applications)
INSTALL(FILES ${CMAKE_SOURCE_DIR}/src/resources/xtandempipeline_icon.svg DESTINATION share/xtpcpp)