gravatar
ladanyi@tmit.bme.hu
ladanyi@tmit.bme.hu
Set the version to 'hg-tip' if everything fails
0 2 0
default
2 files changed with 11 insertions and 5 deletions:
↑ Collapse diff ↑
Ignore white space 192 line context
1 1
CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
2 2

	
3 3
SET(PROJECT_NAME "LEMON")
4 4
PROJECT(${PROJECT_NAME})
5 5

	
6 6
IF(EXISTS ${PROJECT_SOURCE_DIR}/cmake/version.cmake)
7 7
  INCLUDE(${PROJECT_SOURCE_DIR}/cmake/version.cmake)
8 8
ELSEIF(DEFINED ENV{LEMON_VERSION})
9 9
  SET(LEMON_VERSION $ENV{LEMON_VERSION} CACHE STRING "LEMON version string.")
10 10
ELSE()
11 11
  EXECUTE_PROCESS(
12 12
    COMMAND hg id -i
13 13
    WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
14 14
    OUTPUT_VARIABLE HG_REVISION
15 15
    ERROR_QUIET
16 16
    OUTPUT_STRIP_TRAILING_WHITESPACE
17 17
  )
18
  IF(HG_REVISION STREQUAL "")
19
    SET(HG_REVISION "hg-tip")
20
  ENDIF()
18 21
  SET(LEMON_VERSION ${HG_REVISION} CACHE STRING "LEMON version string.")
19 22
ENDIF()
20 23

	
21 24
SET(PROJECT_VERSION ${LEMON_VERSION})
22 25

	
23 26
SET(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)
24 27

	
25 28
FIND_PACKAGE(Doxygen)
26 29
FIND_PACKAGE(Ghostscript)
27 30
FIND_PACKAGE(GLPK 4.33)
28 31
FIND_PACKAGE(CPLEX)
29 32
FIND_PACKAGE(COIN)
30 33

	
31 34
INCLUDE(CheckTypeSize)
32 35
CHECK_TYPE_SIZE("long long" LONG_LONG)
33 36
SET(LEMON_HAVE_LONG_LONG ${HAVE_LONG_LONG})
34 37

	
35 38
ENABLE_TESTING()
36 39

	
37 40
ADD_SUBDIRECTORY(lemon)
38 41
IF(${CMAKE_SOURCE_DIR} STREQUAL ${PROJECT_SOURCE_DIR})
39 42
  ADD_SUBDIRECTORY(demo)
40 43
  ADD_SUBDIRECTORY(tools)
41 44
  ADD_SUBDIRECTORY(doc)
42 45
  ADD_SUBDIRECTORY(test)
43 46
ENDIF()
44 47

	
45 48
CONFIGURE_FILE(
46 49
  ${PROJECT_SOURCE_DIR}/cmake/LEMONConfig.cmake.in
47 50
  ${PROJECT_BINARY_DIR}/cmake/LEMONConfig.cmake
48 51
  @ONLY
49 52
)
50 53
IF(UNIX)
51 54
  INSTALL(
52 55
    FILES ${PROJECT_BINARY_DIR}/cmake/LEMONConfig.cmake
53 56
    DESTINATION share/lemon/cmake
54 57
  )
55 58
ELSEIF(WIN32)
56 59
  INSTALL(
57 60
    FILES ${PROJECT_BINARY_DIR}/cmake/LEMONConfig.cmake
58 61
    DESTINATION cmake
59 62
  )
60 63
ENDIF()
61 64

	
62 65
IF(${CMAKE_SOURCE_DIR} STREQUAL ${PROJECT_SOURCE_DIR} AND WIN32)
63 66
  SET(CPACK_PACKAGE_NAME ${PROJECT_NAME})
64 67
  SET(CPACK_PACKAGE_VENDOR "EGRES")
65 68
  SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY
66 69
    "LEMON - Library for Efficient Modeling and Optimization in Networks")
67 70
  SET(CPACK_RESOURCE_FILE_LICENSE "${PROJECT_SOURCE_DIR}/LICENSE")
68 71

	
69 72
  SET(CPACK_PACKAGE_VERSION ${PROJECT_VERSION})
70 73

	
71 74
  SET(CPACK_PACKAGE_INSTALL_DIRECTORY
72 75
    "${PROJECT_NAME} ${PROJECT_VERSION}")
73 76
  SET(CPACK_PACKAGE_INSTALL_REGISTRY_KEY
74 77
    "${PROJECT_NAME} ${PROJECT_VERSION}")
75 78

	
76 79
  SET(CPACK_COMPONENTS_ALL headers library html_documentation bin)
77 80

	
78 81
  SET(CPACK_COMPONENT_HEADERS_DISPLAY_NAME "C++ headers")
79 82
  SET(CPACK_COMPONENT_LIBRARY_DISPLAY_NAME "Dynamic-link library")
80 83
  SET(CPACK_COMPONENT_BIN_DISPLAY_NAME "Command line utilities")
81 84
  SET(CPACK_COMPONENT_HTML_DOCUMENTATION_DISPLAY_NAME "HTML documentation")
82 85

	
83 86
  SET(CPACK_COMPONENT_HEADERS_DESCRIPTION
84 87
    "C++ header files")
85 88
  SET(CPACK_COMPONENT_LIBRARY_DESCRIPTION
86 89
    "DLL and import library")
87 90
  SET(CPACK_COMPONENT_BIN_DESCRIPTION
88 91
    "Command line utilities")
89 92
  SET(CPACK_COMPONENT_HTML_DOCUMENTATION_DESCRIPTION
90 93
    "Doxygen generated documentation")
91 94

	
92 95
  SET(CPACK_COMPONENT_HEADERS_DEPENDS library)
93 96

	
94 97
  SET(CPACK_COMPONENT_HEADERS_GROUP "Development")
95 98
  SET(CPACK_COMPONENT_LIBRARY_GROUP "Development")
96 99
  SET(CPACK_COMPONENT_HTML_DOCUMENTATION_GROUP "Documentation")
97 100

	
98 101
  SET(CPACK_COMPONENT_GROUP_DEVELOPMENT_DESCRIPTION
99 102
    "Components needed to develop software using LEMON")
100 103
  SET(CPACK_COMPONENT_GROUP_DOCUMENTATION_DESCRIPTION
101 104
    "Documentation of LEMON")
102 105

	
103 106
  SET(CPACK_ALL_INSTALL_TYPES Full Developer)
104 107

	
105 108
  SET(CPACK_COMPONENT_HEADERS_INSTALL_TYPES Developer Full)
106 109
  SET(CPACK_COMPONENT_LIBRARY_INSTALL_TYPES Developer Full)
107 110
  SET(CPACK_COMPONENT_HTML_DOCUMENTATION_INSTALL_TYPES Full)
108 111

	
109 112
  SET(CPACK_GENERATOR "NSIS")
110 113
  SET(CPACK_NSIS_MUI_ICON "${PROJECT_SOURCE_DIR}/cmake/nsis/lemon.ico")
111 114
  SET(CPACK_NSIS_MUI_UNIICON "${PROJECT_SOURCE_DIR}/cmake/nsis/uninstall.ico")
112 115
  #SET(CPACK_PACKAGE_ICON "${PROJECT_SOURCE_DIR}/cmake/nsis\\\\installer.bmp")
113 116
  SET(CPACK_NSIS_INSTALLED_ICON_NAME "bin\\\\lemon.ico")
Ignore white space 192 line context
1 1
dnl Process this file with autoconf to produce a configure script.
2 2

	
3 3
dnl Version information.
4 4
m4_define([lemon_version_number],
5
	[m4_normalize(esyscmd([echo ${LEMON_VERSION}]))])
5
          [m4_normalize(esyscmd([echo ${LEMON_VERSION}]))])
6 6
dnl m4_define([lemon_version_number], [])
7 7
m4_define([lemon_hg_path], [m4_normalize(esyscmd([./scripts/chg-len.py]))])
8
m4_define([lemon_hg_revision], [m4_normalize(esyscmd([hg id -i]))])
8
m4_define([lemon_hg_revision], [m4_normalize(esyscmd([hg id -i 2> /dev/null]))])
9 9
m4_define([lemon_version], [ifelse(lemon_version_number(),
10
			   [],
11
			   [lemon_hg_path().lemon_hg_revision()],
12
			   [lemon_version_number()])])
10
                           [],
11
                           [ifelse(lemon_hg_revision(),
12
                           [],
13
                           [hg-tip],
14
                           [lemon_hg_path().lemon_hg_revision()])],
15
                           [lemon_version_number()])])
13 16

	
14 17
AC_PREREQ([2.59])
15 18
AC_INIT([LEMON], [lemon_version()], [lemon-user@lemon.cs.elte.hu], [lemon])
16 19
AC_CONFIG_AUX_DIR([build-aux])
17 20
AC_CONFIG_MACRO_DIR([m4])
18 21
AM_INIT_AUTOMAKE([-Wall -Werror foreign subdir-objects nostdinc])
19 22
AC_CONFIG_SRCDIR([lemon/list_graph.h])
20 23
AC_CONFIG_HEADERS([config.h lemon/config.h])
21 24

	
22 25
AC_DEFINE([LEMON_VERSION], [lemon_version()], [The version string])
23 26

	
24 27
dnl Do compilation tests using the C++ compiler.
25 28
AC_LANG([C++])
26 29

	
27 30
dnl Check the existence of long long type.
28 31
AC_CHECK_TYPE(long long, [long_long_found=yes], [long_long_found=no])
29 32
if test x"$long_long_found" = x"yes"; then
30 33
  AC_DEFINE([LEMON_HAVE_LONG_LONG], [1], [Define to 1 if you have long long.])
31 34
fi
32 35

	
33 36
dnl Checks for programs.
34 37
AC_PROG_CXX
35 38
AC_PROG_CXXCPP
36 39
AC_PROG_INSTALL
37 40
AC_DISABLE_SHARED
38 41
AC_PROG_LIBTOOL
39 42

	
40 43
AC_CHECK_PROG([doxygen_found],[doxygen],[yes],[no])
41 44
AC_CHECK_PROG([gs_found],[gs],[yes],[no])
42 45

	
43 46
dnl Detect Intel compiler.
44 47
AC_MSG_CHECKING([whether we are using the Intel C++ compiler])
45 48
AC_COMPILE_IFELSE([#ifndef __INTEL_COMPILER
46 49
choke me
47 50
#endif], [ICC=[yes]], [ICC=[no]])
48 51
if test x"$ICC" = x"yes"; then
49 52
  AC_MSG_RESULT([yes])
50 53
else
51 54
  AC_MSG_RESULT([no])
52 55
fi
53 56

	
54 57
dnl Set custom compiler flags when using g++.
55 58
if test "$GXX" = yes -a "$ICC" = no; then
56 59
  WARNINGCXXFLAGS="-Wall -W -Wall -W -Wunused -Wformat=2 -Wctor-dtor-privacy -Wnon-virtual-dtor -Wno-char-subscripts -Wwrite-strings -Wno-char-subscripts -Wreturn-type -Wcast-qual -Wcast-align -Wsign-promo -Woverloaded-virtual -ansi -fno-strict-aliasing -Wold-style-cast -Wno-unknown-pragmas"
57 60
fi
58 61
AC_SUBST([WARNINGCXXFLAGS])
59 62

	
60 63
dnl Checks for libraries.
61 64
LX_CHECK_GLPK
62 65
LX_CHECK_CPLEX
63 66
LX_CHECK_SOPLEX
64 67
LX_CHECK_COIN
65 68

	
66 69
AM_CONDITIONAL([HAVE_LP], [test x"$lx_lp_found" = x"yes"])
67 70
AM_CONDITIONAL([HAVE_MIP], [test x"$lx_mip_found" = x"yes"])
68 71

	
69 72
dnl Disable/enable building the binary tools.
70 73
AC_ARG_ENABLE([tools],
71 74
AS_HELP_STRING([--enable-tools], [build additional tools @<:@default@:>@])
72 75
AS_HELP_STRING([--disable-tools], [do not build additional tools]),
73 76
              [], [enable_tools=yes])
74 77
AC_MSG_CHECKING([whether to build the additional tools])
75 78
if test x"$enable_tools" != x"no"; then
76 79
  AC_MSG_RESULT([yes])
77 80
else
78 81
  AC_MSG_RESULT([no])
79 82
fi
80 83
AM_CONDITIONAL([WANT_TOOLS], [test x"$enable_tools" != x"no"])
81 84

	
82 85
dnl Checks for header files.
83 86
AC_CHECK_HEADERS(limits.h sys/time.h sys/times.h unistd.h)
84 87

	
85 88
dnl Checks for typedefs, structures, and compiler characteristics.
86 89
AC_C_CONST
87 90
AC_C_INLINE
88 91
AC_TYPE_SIZE_T
89 92
AC_HEADER_TIME
90 93
AC_STRUCT_TM
91 94

	
92 95
dnl Checks for library functions.
93 96
AC_HEADER_STDC
94 97
AC_CHECK_FUNCS(gettimeofday times ctime_r)
95 98

	
96 99
dnl Add dependencies on files generated by configure.
97 100
AC_SUBST([CONFIG_STATUS_DEPENDENCIES],
98 101
  ['$(top_srcdir)/doc/Doxyfile.in $(top_srcdir)/lemon/lemon.pc.in $(top_srcdir)/cmake/version.cmake.in'])
99 102

	
100 103
AC_CONFIG_FILES([
101 104
Makefile
102 105
demo/Makefile
103 106
cmake/version.cmake
104 107
doc/Doxyfile
105 108
lemon/lemon.pc
106 109
])
107 110

	
108 111
AC_OUTPUT
0 comments (0 inline)