1 | ### |
---|
2 | # |
---|
3 | # This file contains macros/functions for Mad-X, and |
---|
4 | # sets some variables which are used by the system. |
---|
5 | # |
---|
6 | # It also sets some initial stuff like versioning |
---|
7 | ### |
---|
8 | |
---|
9 | |
---|
10 | if ( MADX_FORCE_32 OR ${CMAKE_SIZEOF_VOID_P} EQUAL 4 ) |
---|
11 | set(IS32BIT TRUE) |
---|
12 | elseif (${CMAKE_SIZEOF_VOID_P} EQUAL 8) |
---|
13 | set(IS32BIT FALSE) |
---|
14 | else() |
---|
15 | message(WARNING "Could not determine 32/64bit, assuming 32bit") |
---|
16 | set(IS32BIT TRUE) |
---|
17 | endif() |
---|
18 | |
---|
19 | # project version |
---|
20 | file(READ ${CMAKE_SOURCE_DIR}/VERSION VERSION_INFO) |
---|
21 | string(REGEX MATCH "VERSION *= *[0-9]+.[0-9]+.[0-9]+" MADX_VERSION ${VERSION_INFO}) |
---|
22 | string(REGEX REPLACE "VERSION *= *" "" MADX_VERSION ${MADX_VERSION}) |
---|
23 | # split version in major/minor/patch_level: |
---|
24 | string(REGEX REPLACE "^([0-9])+.[0-9]+.[0-9]+" "\\1" MADX_MAJOR_VERSION ${MADX_VERSION}) |
---|
25 | string(REGEX REPLACE "^[0-9]+.([0-9]+).[0-9]+" "\\1" MADX_MINOR_VERSION ${MADX_VERSION}) |
---|
26 | string(REGEX REPLACE "^[0-9]+.[0-9]+.([0-9]+)" "\\1" MADX_PATCH_LEVEL ${MADX_VERSION}) |
---|
27 | #VERSION_DATE: |
---|
28 | string(REGEX MATCH "VERSION_DATE += *[^\n]+" VERSION_DATE ${VERSION_INFO}) |
---|
29 | string(REGEX REPLACE "VERSION_DATE += *" "" VERSION_DATE ${VERSION_DATE}) |
---|
30 | |
---|
31 | message(STATUS "Mad-X version: ${MADX_VERSION}") |
---|
32 | message(STATUS "Version date: ${VERSION_DATE}") |
---|
33 | |
---|
34 | # Append _dev/-dev to binary/package name |
---|
35 | if(NOT MADX_PATCH_LEVEL EQUAL 00) |
---|
36 | message(STATUS "Building a development version") |
---|
37 | set (BINARY_POSTFIX "_dev") |
---|
38 | set (PKG_POSTFIX "-dev") |
---|
39 | endif() |
---|
40 | |
---|
41 | # add 32 to the name for 32bit binaries.. |
---|
42 | if(IS32BIT) |
---|
43 | set(BINARY_POSTFIX "${BINARY_POSTFIX}32") |
---|
44 | endif() |
---|
45 | |
---|
46 | # Location of fortran modules: |
---|
47 | set(CMAKE_Fortran_MODULE_DIRECTORY |
---|
48 | ${PROJECT_BINARY_DIR}/include/fortran/madX CACHE PATH "Single Directory for all fortran modules." |
---|
49 | ) |
---|
50 | |
---|