]> git.lyx.org Git - lyx.git/blobdiff - development/cmake/CMakeLists.txt
cmake: Kornel's package versions
[lyx.git] / development / cmake / CMakeLists.txt
index 0f9141873ef368b96f8cdd2be7ef2743eae67865..5340b6f7e128f31eb49f44202230e7271a0ea6e8 100644 (file)
@@ -23,13 +23,40 @@ set(EXECUTABLE_OUTPUT_PATH  ${CMAKE_BINARY_DIR}/bin)
 # Supress regeneration
 set(CMAKE_SUPPRESS_REGENERATION TRUE)
 
-set(PACKAGE lyx)
-set(PACKAGE_VERSION 2.0svn)
-set(LYX_DATE "2008/2009")
-#TODO
 set(VERSION_INFO "CMake Build")
-set(LYX_DIR_VER "LYX_DIR_20x")
-set(LYX_USERDIR_VER "LYX_USERDIR_20x")
+
+# Try to get some informations from configure.ac
+
+include(LyXPaths)              #called here to define the needed TOP_SRC_DIR-variable
+file(STRINGS "${TOP_SRC_DIR}/configure.ac" _config_lines)
+
+macro(setstripped _varname _value)
+  string(STRIP ${_value} _v)
+  set(${_varname} ${_v})
+endmacro(setstripped)
+
+foreach(_c_l ${_config_lines} )
+  if(_c_l MATCHES "^AC_INIT\\(\([^,]+\),\([^,]+\),\([^,]+\)\(.*\)")
+    setstripped(PACKAGE_tmp ${CMAKE_MATCH_1})
+    setstripped(PACKAGE_VERSION ${CMAKE_MATCH_2})
+    if(PACKAGE_VERSION MATCHES "^\([0-9]+\)\\.\([0-9]+\).*$")
+      set(LYX_DIR_VER "LYX_DIR_${CMAKE_MATCH_1}${CMAKE_MATCH_2}x")
+      set(LYX_USERDIR_VER "LYX_USERDIR_${CMAKE_MATCH_1}${CMAKE_MATCH_2}x")
+      set(LYX_INSTALL_SUFFIX "${CMAKE_MATCH_1}.${CMAKE_MATCH_2}")
+    endif()
+  endif()
+  if(_c_l MATCHES "^AC_SUBST\\( *LYX_DATE *, *\\[\\\"(.*)\\\"\\].*")
+    set(LYX_DATE "${CMAKE_MATCH_1}")
+  endif()
+endforeach(_c_l)
+
+if(UseVersionSuffix)
+  message("-- Using versioned PACKAGE. Disable with -DUseVersionSuffix=0")
+  set(PACKAGE ${PACKAGE_tmp}${LYX_INSTALL_SUFFIX})
+else()
+  message("-- PACKAGE not versioned, to enable use -DUseVersionSuffix=1")
+  set(PACKAGE ${PACKAGE_tmp})
+endif()
 
 set(PROGRAM_SUFFIX "\"\"")
 if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
@@ -38,11 +65,11 @@ if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
     # don't use the default "/usr/local"
     # but respect the user-choice on the command-line
     SET(CMAKE_INSTALL_PREFIX
-      "/usr/local/share/lyx2.0" CACHE PATH "LyX install prefix" FORCE)
+      "/usr/local/share/lyx${LYX_INSTALL_SUFFIX}" CACHE PATH "LyX install prefix" FORCE)
   endif()
   if(WIN32)
     SET(CMAKE_INSTALL_PREFIX
-      ${CMAKE_INSTALL_PREFIX}/2.0 CACHE PATH "LyX install prefix" FORCE)
+      ${CMAKE_INSTALL_PREFIX}/${LYX_INSTALL_SUFFIX} CACHE PATH "LyX install prefix" FORCE)
   endif()
 endif(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
 
@@ -69,7 +96,6 @@ endif()
 set(LYX_CPP_FILES *.cpp)
 set(LYX_HPP_FILES *.h)
 
-include(LyXPaths)
 include(LyXMacros)
 include(ProjectSourceGroup)
 
@@ -196,10 +222,16 @@ if(WIN32)
 endif()
 
 message("")
-message("----- PROGRAM_SUFFIX              : ${PROGRAM_SUFFIX}")
-message("----- LYX_ABS_TOP_SRCDIR          : ${LYX_ABS_TOP_SRCDIR}")
-message("----- LYX_ABS_INSTALLED_DATADIR   : ${LYX_ABS_INSTALLED_DATADIR}")
-message("----- LYX_ABS_INSTALLED_LOCALEDIR : ${LYX_ABS_INSTALLED_LOCALEDIR}")
+foreach(_v PACKAGE PACKAGE_VERSION
+    PROGRAM_SUFFIX LYX_DATE LYX_DIR_VER LYX_USERDIR_VER
+    LYX_ABS_TOP_SRCDIR
+    LYX_ABS_INSTALLED_DATADIR LYX_ABS_INSTALLED_LOCALEDIR LYX_INSTALL_SUFFIX)
+  if(NOT DEFINED ${_v})
+    message(FATAL_ERROR "${_v} not defined")
+  endif()
+  string(SUBSTRING "${_v}                            " 0 28 _v1)
+  message("----- ${_v1}: ${${_v}}")
+endforeach(_v)
 message("")
 
 
@@ -335,10 +367,6 @@ configure_file(config.h.cmake ${CMAKE_BINARY_DIR}/config.h)
 find_package(ICONV REQUIRED)
 add_definitions(-DHAVE_ICONV=1)
 
-#TODO: insource is not the best place
-configure_file(${TOP_SRC_DIR}/lib/lyx2lyx/lyx2lyx_version.py.in 
-               ${TOP_SRC_DIR}/lib/lyx2lyx/lyx2lyx_version.py)
-     
 include_directories(
        ${CMAKE_BINARY_DIR}
        ${TOP_SRC_DIR}/src
@@ -352,9 +380,8 @@ add_subdirectory(src)
 
 add_subdirectory(man)
 add_subdirectory(doc)
-if (UNIX)
-    add_subdirectory(lyx2lyx)
-endif()
+add_subdirectory(lyx2lyx)
+add_subdirectory(scripts)
 
 include(../Install)