Changeset 8cc501 in git for CMakeLists.txt
- Timestamp:
- Sep 21, 2010, 8:22:04 PM (13 years ago)
- Branches:
- (u'jengelh-datetime', 'ceac47cbc86fe4a15902392bdbb9bd2ae0ea02c6')(u'spielwiese', 'a657104b677b4c461d018cbf3204d72d34ad66a9')
- Children:
- 96337eeae301e92dbc560e3ce72b7f01da403f10
- Parents:
- 2cc567ccdbc100de452f04837e7b0808bd32a390
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
CMakeLists.txt
r2cc567 r8cc501 3 3 cmake_minimum_required(VERSION 2.6.2 FATAL_ERROR) 4 4 cmake_policy(VERSION 2.6) 5 if(POLICY CMP0011)6 cmake_policy(SET CMP0011 NEW)7 endif(POLICY CMP0011)5 #if(POLICY CMP0011) 6 # cmake_policy(SET CMP0011 NEW) 7 #endif(POLICY CMP0011) 8 8 9 9 # have the full monty in makefiles 10 10 set(CMAKE_VERBOSE_MAKEFILE true) 11 11 12 set( SINGULAR_MAJOR_VERSION3)13 set( SINGULAR_MINOR_VERSION1)14 set( SINGULAR_SUB_VERSION0)12 set(V_MAJOR 3) 13 set(V_MINOR 1) 14 set(V_PATCH 0) 15 15 set(VERSION_SEP "-") 16 set(SINGULAR_SHORT_VERSION "${SINGULAR_MAJOR_VERSION}${VERSION_SEP}${SINGULAR_MINOR_VERSION}") 17 set(SINGULAR_VERSION "${SINGULAR_SHORT_VERSION}${VERSION_SEP}${SINGULAR_SUB_VERSION}") 18 set(SINGULAR_RPM_VERSION "${SINGULAR_MAJOR_VERSION}.${SINGULAR_MINOR_VERSION}.${SINGULAR_SUB_VERSION}") 16 17 set(SINGULAR_SHORT_VERSION "${V_MAJOR}${VERSION_SEP}${V_MINOR}") 18 set(SINGULAR_VERSION "${SINGULAR_SHORT_VERSION}${VERSION_SEP}${V_PATCH}") 19 set(SINGULAR_RPM_VERSION "${V_MAJOR}.${V_MINOR}.${V_PATCH}") 19 20 set(VERSION_DATE "2010-01-12") 21 set(SINGULAR_ROOT_DIR {${PROJECT_NAME}_SOURCE_DIR}) # is ${top_srcdir} 22 23 set(PROJECT_DESCRIPTION "A Computer Algebra System for Polynomial Computations") 24 set(PROJECT_VENDOR "FB Mathematik der Universitaet, D-67653 Kaiserslautern") 25 set(PROJECT_COPYRIGHT "Copyright 2009 ") 26 set(PROJECT_CONTACT "<singular@mathematik.uni-kl.de>") 27 set(PROJECT_VERSION "${V_MAJOR}.${V_MINOR}.${V_PATCH}") 28 set(PROJECT_README "${CMAKE_INSTALL_PREFIX}/share/doc/${PROJECT_NAME}-${V_MAJOR}.${V_MINOR}/README") 29 set(PROJECT_COPYING "${CMAKE_INSTALL_PREFIX}/share/doc/${PROJECT_NAME}-${V_MAJOR}.${V_MINOR}/COPYING") 30 set(PROJECT_DIR "${CMAKE_SYSTEM_PROCESSOR}-${CMAKE_SYSTEM_NAME}") 31 32 ########################################################### 33 # tree of dependencies (attempt) 34 # 35 # omalloc ntl 36 # \ / 37 # factory 38 # 39 # Singular 40 # kernel 41 # libfac 42 43 ########################################################### 44 # we do not want to run cmake in the source directory 45 if( ${PROJECT_SOURCE_DIR} STREQUAL ${CMAKE_BINARY_DIR}) 46 message(STATUS "DO not run cmake in the source directory") 47 message(STATUS "create an extra binary directory") 48 message(STATUS "Don't forget to remove CMakeCache.txt CMakeFiles") 49 message(FATAL_ERROR "Exiting cmake here.") 50 endif( ${PROJECT_SOURCE_DIR} STREQUAL ${CMAKE_BINARY_DIR}) 51 52 #message(FATAL_ERROR "my test failed") 20 53 21 54 ########################################################### … … 23 56 set(CMAKE_ADDITIONAL_PATH "$ENV{CMAKE_ADDITIONAL_PATH}" 24 57 CACHE PATH "Path where many locally installed libraries can be found") 58 59 ########################################################### 60 # Where are the additional libraries installed? Note: provide includes 61 # path here, subsequent checks will resolve everything else 62 set(CMAKE_INCLUDE_PATH ${CMAKE_INCLUDE_PATH} ${CMAKE_ADDITIONAL_PATH}/include) 63 set(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} ${CMAKE_ADDITIONAL_PATH}/lib) 64 set(CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH}" 65 "${CMAKE_SOURCE_DIR}/modules" 66 "$ENV{CMAKE_MODULE_PATH}") 67 68 ########################################################### 69 ## 70 ########################################################### 71 OPTION(ENABLE_OMALLOC "omalloc memory managment" ON) 72 OPTION(ENABLE_GMP "Gnu Multiple Precision package" ON) 73 OPTION(ENABLE_FACTORY "polynomial factorization library" ON) 74 OPTION(ENABLE_LIBFAC "char set and modp poly factorization library" ON) 75 OPTION(ENABLE_SINGULAR "CAS for Polynomial Computations" ON) 76 OPTION(ENABLE_MP "Multi Protocol library" OFF) 77 78 ########################################################### 79 ## 80 ########################################################### 81 set(ENABLE_OMALLOC On) 82 set(ENABLE_GMP On) 83 set(ENABLE_FACTORY On) 84 set(ENABLE_LIBFAC On) 85 set(ENABLE_SINGULAR On) 86 set(ENABLE_NTL On) 87 88 ########################################################### 89 ## 90 ########################################################### 91 #set(STDC_HEADERS 1) 92 set(NOSTREAMIO 0) 93 94 set(NTL_TARGET gen-gen) 95 96 ## just for test 97 message(STATUS "CMAKE_SYSTEM_PROCESSOR='${CMAKE_SYSTEM_PROCESSOR}'") 98 message(STATUS "CMAKE_SYSTEM='${CMAKE_SYSTEM}'") 99 message(STATUS "CMAKE_SYSTEM_NAME='${CMAKE_SYSTEM_NAME}'") 100 message(STATUS "CMAKE_SYSTEM_VERSION='${CMAKE_SYSTEM_VERSION}'") 101 message(STATUS "PROJECT_DIR='${PROJECT_DIR}'") 102 103 # OSDEF can be: x86_64_Linux 104 set(_OSDEF "NDEBUG;OM_NDEBUG;${CMAKE_SYSTEM_PROCESSOR}_${CMAKE_SYSTEM_NAME}") 105 #set(ADD_DEFS "NOSTREAMIO;${_OSDEF};HAVE_CONFIG_H;SINGULAR") 106 set(ADD_DEFS "${_OSDEF};HAVE_CONFIG_H") 107 108 ########################################################### 109 # add a path where some libraries might be stored 110 set(CMAKE_ADDITIONAL_PATH "$ENV{CMAKE_ADDITIONAL_PATH}" 111 CACHE PATH "Path where many locally installed libraries can be found") 112 113 ########################################################### 114 # No user settings below 115 ########################################################### 116 message(STATUS "Have compiler: '${CMAKE_CXX_COMPILER_ID}'") 117 if (${CMAKE_CXX_COMPILER_ID} MATCHES "GNU") 118 #if (${CMAKE_BUILD_TYPE} MATCHES "Release") 119 #endif (${CMAKE_BUILD_TYPE} MATCHES "Release") 120 121 #set(CMAKE_CXX_FLAGS "-W -Wall -Wextra -Wno-non-virtual-dtor") 122 set(CMAKE_C_FLAGS "-w -pipe ") 123 set(CMAKE_CXX_FLAGS "-w -pipe ") #--no-rtti 124 # set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-implicit-templates") 125 # set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") 126 127 set(CMAKE_C_FLAGS_RELEASE "-O3 -fomit-frame-pointer") 128 set(CMAKE_CXX_FLAGS_RELEASE "-O3 --no-rtti -fomit-frame-pointer") 129 130 #set(CMAKE_C_FLAGS_RELEASE "-O2 -fomit-frame-pointer -DNDEBUG ") 131 #set(CMAKE_CXX_FLAGS_RELEASE "-O2 -fomit-frame-pointer -DNDEBUG -DOM_NDEBUG") 132 133 #set(CMAKE_CXX_FLAGS_DEBUG "-Werror -O0 -g -ggdb -Wreturn-type -fno-omit-frame-pointer") 134 set(CMAKE_CXX_FLAGS_DEBUG "-O0 -g -Wreturn-type -fno-omit-frame-pointer") 135 set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Wunused-variable -Wunused-parameter") 136 set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Wunused-function -Wunused") 137 #set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Woverloaded-virtual") 138 set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Wno-system-headers") 139 140 #set(CMAKE_C_FLAGS_DEBUG "-Werror -O0 -g -ggdb -Wreturn-type -fno-omit-frame-pointer") 141 set(CMAKE_C_FLAGS_DEBUG "-O0 -g -Wreturn-type -fno-omit-frame-pointer") 142 set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -fno-inline-functions") 143 set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -Wunused-variable -Wunused-parameter") 144 set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -Wunused-function -Wunused") 145 set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -Wno-system-headers -Wall") 146 147 # gprof and gcov support 148 set(CMAKE_CXX_FLAGS_PROFILE "-O0 -g -ggdb -Wreturn-type -Woverloaded-virtual") 149 # set(CMAKE_CXX_FLAGS_PROFILE "${CMAKE_CXX_FLAGS_PROFILE} -Wno-system-headers -pg") 150 set(CMAKE_CXX_FLAGS_PROFILE "${CMAKE_CXX_FLAGS_PROFILE} -Wno-system-headers ") 151 set(CMAKE_CXX_FLAGS_PROFILE "${CMAKE_CXX_FLAGS_PROFILE} -fprofile-arcs -ftest-coverage") 152 153 set(CMAKE_C_FLAGS_PROFILE "-O0 -g -ggdb -Wreturn-type -Woverloaded-virtual") 154 set(CMAKE_C_FLAGS_PROFILE "${CMAKE_C_FLAGS_PROFILE} -Wno-system-headers -pg") 155 set(CMAKE_C_FLAGS_PROFILE "${CMAKE_C_FLAGS_PROFILE} -fprofile-arcs -ftest-coverage") 156 endif (${CMAKE_CXX_COMPILER_ID} MATCHES "GNU") 25 157 26 158 ########################################################### … … 31 163 set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/modules") 32 164 165 ########################################################### 166 # load requires cmake includes 167 include(LibMacros) 168 169 ########################################################### 170 ### check programms 171 ########################################################### 172 find_program(PERL_CMD perl) 173 find_program(UUDECODE uudecode) 174 find_program(GUNZIP gunzip) 175 find_program(GZIP gzip) 176 find_program(LATEX2HTML latex2html) 177 178 ########################################################### 179 ### check libraries 180 ########################################################### 181 include(InstallRequiredSystemLibraries) 182 183 184 ########################################################### 185 ### check header files 186 ########################################################### 187 include(FindHeader) 188 check_headers(gmp.h MP.h MPT.h factory.h factor.h omalloc.h) 189 check_headers(limits.h unistd.h) 190 check_headers(sys/file.h sys/ioctl.h sys/time.h sys/times.h sys/types.h 191 sys/stat.h fcntl.h sys/param.h pwd.h asm/sigcontext.h pwd.h termcap.h 192 termios.h term.h readline/readline.h readline/history.h) 193 check_headers(iostream.h iostream) 194 195 check_library(m) 196 check_library(bsd) 197 check_library(socket) 198 check_library(nsl) 199 check_library(gmp) 200 check_library(MPT) 201 check_library(readline) 202 set(HAVE_LIBREADLINE 1) 203 set(HAVE_READLINE 1) 204 check_library(dl) 205 if(${HAVE_LIBDL}) 206 message(STATUS "setting dynamic kernel to yes") 207 set(DL_KERNEL 1) 208 endif(${HAVE_LIBDL}) 209 210 include(CheckFunctionExists) 211 check_funcs(popen readlink sbrk getcwd getwd) 212 check_funcs(gettimeofday atexit bcopy getcwd getwd vsnprintf readlink 213 sleep usleep getpwnam popen setenv siginterrupt sysconf) 214 set(TIME_WITH_SYS_TIME 1) 215 216 ########################################################### 217 include (CheckTypeSize) 218 check_type_size(int SIZEOF_INT) 219 check_type_size(long SIZEOF_LONG) 220 check_type_size(void* SIZEOF_VOIDP) 221 check_type_size(double SIZEOF_DOUBLE) 222 check_type_size(size_t SIZEOF_SIZE_T) 223 224 225 ########################################################### 226 ## set include directories 227 #include_directories(${CMAKE_CURRENT_BINARY_DIR}) 228 #include_directories(${CMAKE_CURRENT_SOURCE_DIR}) 229 #include_directories(${CMAKE_CURRENT_SOURCE_DIR}/factory) 230 #include_directories(${CMAKE_CURRENT_SOURCE_DIR}/ntl/include) 231 232 ## PkgConfig is helpful 233 include(FindPkgConfig) 234 if ( PKG_CONFIG_FOUND ) 235 # pkg_check_modules (CPPUNIT REQUIRED cppunit>=1.12) 236 # message(STATUS "CPPUnit: -I${CPPUNIT_INCLUDE_DIRS} -L${CPPUNIT_LIBRARY_DIRS} -l${CPPUNIT_LIBRARIES}") 237 238 else ( PKG_CONFIG_FOUND ) 239 message(FATAL_ERROR "No PKGCONFIG found - hoping for the best.") 240 IF(WIN32) 241 # search packages by hand 242 # CPPunit 243 include(FindCppUnit) 244 ENDIF(WIN32) 245 endif ( PKG_CONFIG_FOUND ) 246 247 if( ${CMAKE_BUILD_TYPE} MATCHES "Release") 248 set(MAKE_DISTRIBUTION 1) 249 endif( ${CMAKE_BUILD_TYPE} MATCHES "Release") 250 message(STATUS ">>${CMAKE_BUILD_TYPE}<<") 251 message(STATUS ">>${MAKE_DISTRIBUTION}<<") 252 253 ########################################################### 254 ### check directories 255 ########################################################### 256 set(TMPDIR ${${PROJECT_NAME}_BINARY_DIR}/tmp) 257 # set various define used with configure. 258 if(ENABLE_SINGULAR) 259 SET(WITH_SINGULAR On) 260 set(WITH_SINGULARERROR On) 261 endif(ENABLE_SINGULAR) 262 263 # copied from configure, seems to be useless, because omalloc is now part 264 # of the project 265 if(ENABLE_OMALLOC) 266 add_subdirectory(omalloc) 267 else(ENABLE_OMALLOC) 268 message(FATAL_ERROR "can not build without omalloc") 269 endif(ENABLE_OMALLOC) 270 271 message(STATUS "Header 0: '${OMALLOC_H}'") 272 if(ENABLE_NTL) 273 include(NTLMacros) 274 add_ntl(NTL_TARGET NTL_LIBRARY ${CMAKE_SOURCE_DIR}/ntl) 275 include_directories(${CMAKE_SOURCE_DIR}/ntl/include) 276 message(STATUS "Compiling with ntl target '${NTL_TARGET}'") 277 else(ENABLE_NTL) 278 message(STATUS "Compiling without ntl") 279 endif(ENABLE_NTL) 280 281 # switch ENABLE_FACTORY ist useless. Singular does not compile without 282 # factory. 283 if(ENABLE_FACTORY) 284 set(HAVE_FACTORY 1) 285 add_subdirectory(factory) 286 message(STATUS "Compiling with factory") 287 else(ENABLE_FACTORY) 288 message(STATUS "Singular canot be compiled without factory.") 289 endif(ENABLE_FACTORY) 290 291 if(ENABLE_LIBFAC) 292 set(HAVE_LIBFAC 0) 293 add_subdirectory(libfac) 294 add_dependencies(fac ${FACTORY_TARGET}) 295 message(STATUS "Compiling with libfac") 296 else(ENABLE_LIBFAC) 297 message(STATUS "Compiling without libfac") 298 endif(ENABLE_LIBFAC) 299 300 # MP Multi-Protocol is not 64bit clean. 301 include (CheckTypeSize) 302 check_type_size(long SIZEOF_LONG) 303 message(STATUS "Sizeof long is ${SIZEOF_LONG}.") 304 if( NOT ${SIZEOF_LONG} EQUAL 4) 305 message(STATUS "MP disabled!") 306 # set(ENABLE_MP No) 307 endif(NOT ${SIZEOF_LONG} EQUAL 4) 308 if(ENABLE_MP) 309 if(ENABLE_GMP) 310 add_subdirectory(MP) 311 message(STATUS "Compile with local MP.") 312 set(WITH_MP Yes) 313 else(ENABLE_GMP) 314 set(ENABLE_MP No) 315 set(WITH_MP No) 316 message(STATUS "can not build MP without gmp.") 317 endif(ENABLE_GMP) 318 endif(ENABLE_MP) 319 320 add_subdirectory(kernel) 321 add_subdirectory(Singular) 33 322 34 323 include(CTest) 35 324 enable_testing() 36 add_subdirectory(tests) 325 #add_subdirectory(tests) 326 327 # print configuration 328 message(STATUS "Report of the settings used") 329 message(STATUS "Enable Singular is .........: ${ENABLE_SINGULAR}") 330 message(STATUS "Enable omalloc is ..........: ${ENABLE_OMALLOC}") 331 message(STATUS "Enable gmp is ..............: ${ENABLE_GMP}") 332 message(STATUS "Enable MP is ...............: ${ENABLE_MP}") 333 message(STATUS "Enable factory .............: ${ENABLE_FACTORY}") 334 message(STATUS "Enable libfac ..............: ${ENABLE_LIBFAC}") 335 message(STATUS "Enable .....................: ${ENABLE_SINGULAR}") 336 message(STATUS "Enable TexInfo .............: ${ENABLE_TEXINFO}") 337 message(STATUS "Enable Texi2Html ...........: ${ENABLE_TEXI2HTML}") 338 message(STATUS "Enable doc .................: ${ENABLE_DOC}") 339 message(STATUS "Enable emacs ...............: ${ENABLE_EMACS}") 340 341 #message(STATUS "with MP is .................: ${WITH_MP}") 342 #message(STATUS "with factory ...............: ${WITH_FACTORY}") 343 #message(STATUS "with libfac ................: ${WITH_LIBFAC}") 344 #message(STATUS "with apint ................: ${WITH_APINT}") 345 message(STATUS "with NOSTREAMIO ............: ${WITH_NOSTREAMIO}") 346 347 348 # cpack configuration 349 include(InstallRequiredSystemLibraries) 350 set(CPACK_PACKAGE_DESCRIPTION_SUMMARY ${PROJECT_DESCRIPTION}) 351 set(CPACK_PACKAGE_VENDOR ${PROJECT_VENDOR}) 352 set(CPACK_PACKAGE_CONTACT "<singular@mathematik.uni-kl.de>") 353 set(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README") 354 set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/COPYING") 355 set(CPACK_PACKAGE_VERSION_MAJOR "${V_MAJOR}") 356 set(CPACK_PACKAGE_VERSION_MINOR "${V_MINOR}") 357 set(CPACK_PACKAGE_VERSION_PATCH "${V_PATCH}") 358 set(CPACK_PACKAGE_INSTALL_DIRECTORY "CMake ${CMake_VERSION_MAJOR}.${CMake_VERSION_MINOR}") 359 360 # Pack rpms 361 set(CPACK_RPM_PACKAGE_DESCRIPTION_SUMMARY ${PROJECT_DESCRIPTION}) 362 set(CPACK_RPM_PACKAGE_VENDOR ${PROJECT_VENDOR}) 363 set(CPACK_RPM_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README") 364 set(CPACK_RPM_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/COPYING") 365 set(CPACK_RPM_PACKAGE_VERSION_MAJOR "${V_MAJOR}") 366 set(CPACK_RPM_PACKAGE_VERSION_MINOR "${V_MINOR}") 367 set(CPACK_RPM_PACKAGE_VERSION_PATCH "${V_PATCH}") 368 set(CPACK_RPM_PACKAGE_INSTALL_DIRECTORY "CMake ${CMake_VERSION_MAJOR}.${CMake_VERSION_MINOR}") 369 set(CPACK_SOURCE_RPM ON) 370 set(CPACK_BINARY_RPM ON) 371 372 include(CPack) 373
Note: See TracChangeset
for help on using the changeset viewer.