project(FreeDV)
#
-# Parse FreeDV version from src/version.h
-#
-file(READ "${CMAKE_SOURCE_DIR}/src/version.h" _VERSION_H)
-string(REGEX REPLACE ".*FREEDV_VERSION_MAJOR ([0-9]+).*" "\\1"
- FREEDV_VERSION_MAJOR "${_VERSION_H}")
-string(REGEX REPLACE ".*FREEDV_VERSION_MINOR ([0-9]+).*" "\\1"
- FREEDV_VERSION_MINOR "${_VERSION_H}")
-string(REGEX REPLACE ".*FREEDV_VERSION_PATCH ([0-9]+).*" "\\1"
- FREEDV_VERSION_PATCH "${_VERSION_H}")
-set(FREEDV_VERSION "${FREEDV_VERSION_MAJOR}.${FREEDV_VERSION_MINOR}")
+# Set FreeDV version and generate src/version.h
+#
+set(FREEDV_VERSION_MAJOR 0)
+set(FREEDV_VERSION_MINOR 99)
+set(FREEDV_VERSION_PATCH FALSE)
+set(FREEDV_VERSION ${FREEDV_VERSION_MAJOR}.${FREEDV_VERSION_MINOR})
if(FREEDV_VERSION_PATCH)
set(FREEDV_VERSION ${FREEDV_VERSION}.${FREEDV_VERSION_PATCH})
-endif(FREEDV_VERSION_PATCH)
-
-message(STATUS "FreeDV version: ${FREEDV_VERSION}")
+endif()
+set(FREEDV_VERSION_SUFFIX "Beta")
+if(FREEDV_VERSION_SUFFIX)
+ set(FREEDV_VERSION_STRING "${FREEDV_VERSION} ${FREEDV_VERSION_SUFFIX}")
+endif()
+message(STATUS "FreeDV version: ${FREEDV_VERSION_STRING}")
+configure_file(cmake/version.h.in src/version.h @ONLY)
# Set default build type
if(NOT CMAKE_BUILD_TYPE)
set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/COPYING")
set(CPACK_PACKAGE_VERSION_MAJOR ${FREEDV_VERSION_MAJOR})
set(CPACK_PACKAGE_VERSION_MINOR ${FREEDV_VERSION_MINOR})
+ # CPack expects a patch level version so set it here and override if we
+ # are actually setting one.
+ set(CPACK_PACKAGE_VERSION_PATCH 0)
if(FREEDV_VERSION_PATCH)
set(CPACK_PACKAGE_VERSION_PATCH ${FREEDV_VERSION_PATCH})
- else()
- set(CPACK_PACKAGE_VERSION_PATCH "0")
endif()
- set(CPACK_PACKAGE_EXECUTABLES freedv;FreeDV)
+ if(FREEDV_VERSION_SUFFIX)
+ set(CPACK_PACKAGE_VERSION_PATCH "${CPACK_PACKAGE_VERSION_PATCH}-${FREEDV_VERSION_SUFFIX}")
+ endif()
# There is a bug in NSI that does not handle full unix paths properly. Make
# sure there is at least one set of four (4) backlasshes.
#set(CPACK_PACKAGE_ICON "${CMake_SOURCE_DIR}/Utilities/Release\\\\InstallIcon.bmp")
--- /dev/null
+#ifndef FREEDV_VER_DOT_H
+#define FREEDV_VER_DOT_H 1
+
+#define FREEDV_VERSION_MAJOR @FREEDV_VERSION_MAJOR@
+#define FREEDV_VERSION_MINOR @FREEDV_VERSION_MINOR@
+#define FREEDV_VERSION_PATCH @FREEDV_VERSION_PATCH@
+#define FREEDV_VERSION_SUFFIX "@FREEDV_VERSION_SUFFIX@"
+
+#define FREEDV_VERSION "@FREEDV_VERSION_STRING@"
+
+#endif //FREEDV_VER_DOT_H
# WIN32 is needed for Windows GUI apps and is ignored for UNIX like systems.
add_executable(freedv WIN32 ${FREEDV_SOURCES} ${RES_FILES})
target_link_libraries(freedv ${FREEDV_LINK_LIBS})
-include_directories(${CMAKE_CURRENT_SOURCE_DIR})
+include_directories(${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR})
if(FREEDV_STATIC_DEPS)
add_dependencies(freedv ${FREEDV_STATIC_DEPS})
endif(FREEDV_STATIC_DEPS)
+++ /dev/null
-#ifndef FREEDV_VER_DOT_H
-#define FREEDV_VER_DOT_H 1
-
-#define FREEDV_VERSION_MAJOR 0
-#define FREEDV_VERSION_MINOR 98
-#define FREEDV_VERSION_PATCH 0
-#define FREEDV_VERSION_SUFFIX "Beta"
-
-#define FREEDV_VERSION "0.98.0 Beta"
-
-#endif //FREEDV_VER_DOT_H