Cleanup generation of AboutThisBuild.txt and fix wrong path assumtions for the splash screen (closes issue #591) (branch_3.0)

This commit is contained in:
Philip Rinn
2011-03-27 17:13:41 +02:00
parent 5b159e8d5f
commit 12e4991c6b
7 changed files with 67 additions and 33 deletions

View File

@@ -3,7 +3,7 @@
string (TOUPPER ${CMAKE_BUILD_TYPE} UPPER_CMAKE_BUILD_TYPE) string (TOUPPER ${CMAKE_BUILD_TYPE} UPPER_CMAKE_BUILD_TYPE)
# wee look for the hg command in this paths by order of preference # we look for the hg command in this paths by order of preference
find_file(HG_CMD hg PATHS "/opt/local/bin" "/usr/local/bin" "/usr/bin") find_file(HG_CMD hg PATHS "/opt/local/bin" "/usr/local/bin" "/usr/bin")
find_file(HG_CMD hg) find_file(HG_CMD hg)
@@ -14,25 +14,28 @@ else (HG_CMD STREQUAL HG_CMD-NOTFOUND)
endif (HG_CMD STREQUAL HG_CMD-NOTFOUND) endif (HG_CMD STREQUAL HG_CMD-NOTFOUND)
set (OUT_FILE "${CMAKE_CURRENT_SOURCE_DIR}/AboutThisBuild.txt") set (OUT_FILE "${CMAKE_CURRENT_SOURCE_DIR}/AboutThisBuild.txt")
set (VERSION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/rtgui/version.h")
set (SHELL "/bin/bash") set (SHELL "/bin/bash")
execute_process(COMMAND ${HG_CMD} parents --template={latesttag}.{latesttagdistance} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} OUTPUT_VARIABLE HG_VERSION)
execute_process(COMMAND ${HG_CMD} parents --template={node|short} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} OUTPUT_VARIABLE HG_CHANGESET)
execute_process(COMMAND ${HG_CMD} parents --template={latesttagdistance} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} OUTPUT_VARIABLE HG_TAGDISTANCE)
# build version.h from template
configure_file (${CMAKE_CURRENT_SOURCE_DIR}/rtgui/version.h.in ${CMAKE_CURRENT_BINARY_DIR}/rtgui/version.h)
# if AboutThisBuild.txt has to be deleted, i guess that it's also the case for version.txt...
add_custom_target (AboutFile ALL add_custom_target (AboutFile ALL
COMMAND rm -f ${OUT_FILE} COMMAND rm -f ${OUT_FILE}
COMMAND rm -f ${VERSION_FILE} COMMAND echo Branch: `${HG_CMD} -R ${CMAKE_CURRENT_SOURCE_DIR} branch` >>${OUT_FILE}
COMMAND for i in \$\( ${HG_CMD} -R \"${CMAKE_CURRENT_SOURCE_DIR}\" branch \)\; do echo Branch: $i >${OUT_FILE}\; done COMMAND echo Version: ${HG_VERSION} >>${OUT_FILE}
COMMAND ${HG_CMD} -R \"${CMAKE_CURRENT_SOURCE_DIR}\" parents --template=\"Version: {latesttag}.{latesttagdistance}\\nChangset: {node|short}\\n\" >>${OUT_FILE} COMMAND echo Changset: ${HG_CHANGESET} >>${OUT_FILE}
COMMAND for i in \$\( gcc -dumpversion \) \;do echo Compiler: GCC $i >>${OUT_FILE} \; done COMMAND echo Compiler: GCC `gcc -dumpversion` >>${OUT_FILE}
COMMAND echo Processor: ${PROC_LABEL} >>${OUT_FILE} COMMAND echo Processor: ${PROC_LABEL} >>${OUT_FILE}
COMMAND echo Bit depth: ${PROC_BIT_DEPTH} >>${OUT_FILE} COMMAND echo Bit depth: ${PROC_BIT_DEPTH} >>${OUT_FILE}
COMMAND echo Gtkmm: V${GTKMM_VERSION} >>${OUT_FILE} COMMAND echo Gtkmm: V${GTKMM_VERSION} >>${OUT_FILE}
COMMAND echo Build type: ${CMAKE_BUILD_TYPE} >>${OUT_FILE} COMMAND echo Build type: ${CMAKE_BUILD_TYPE} >>${OUT_FILE}
COMMAND echo Build flags: ${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_${UPPER_CMAKE_BUILD_TYPE}} >>${OUT_FILE} COMMAND echo Build flags: ${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_${UPPER_CMAKE_BUILD_TYPE}} >>${OUT_FILE}
COMMAND echo Link flags: ${CMAKE_EXE_LINKER_FLAGS} ${CMAKE_EXE_LINKER_FLAGS_${UPPER_CMAKE_BUILD_TYPE}} >>${OUT_FILE} COMMAND echo Link flags: ${CMAKE_EXE_LINKER_FLAGS} ${CMAKE_EXE_LINKER_FLAGS_${UPPER_CMAKE_BUILD_TYPE}} >>${OUT_FILE}
COMMAND if [ \"${OPTION_OMP}\" = \"ON\" ] \; then echo OpenMP support: Yes >>${OUT_FILE} \;else echo OpenMP support: No >>${OUT_FILE} \;fi COMMAND echo OpenMP support: ${OPTION_OMP} >>${OUT_FILE}
COMMAND if [ \"${WITH_MYFILE_MMAP}\" = \"ON\" ] \; then echo MMAP support: Yes >>${OUT_FILE} \; else echo MMAP support: No >>${OUT_FILE} \;fi COMMAND echo MMAP support: ${WITH_MYFILE_MMAP} >>${OUT_FILE}
COMMAND if [ \"${WITH_RAWZOR}\" = \"ON\" ] \; then echo Rawzor support: Yes >>${OUT_FILE} \;else echo Rawzor support: No >>${OUT_FILE} \;fi COMMAND echo Rawzor support: ${WITH_RAWZOR} >>${OUT_FILE}
COMMAND ${HG_CMD} -R \"${CMAKE_CURRENT_SOURCE_DIR}\" parents --template=\"// This file is automatically generated by the Makefile \; DO NOT EDIT!\\n// You can \(should\) also tell mercurial to ignore it.\\n\\n\#ifndef _VERSION_\\n\#define _VERSION_\\n\\n\#define VERSION \\"{latesttag}.{latesttagdistance}\\"\\n\#define TAGDISTANCE {latesttagdistance}\\n\\n\#endif\\n\" >${VERSION_FILE}
COMMENT "Creating the about file" COMMENT "Creating the about file"
) )

View File

@@ -3,7 +3,7 @@
string (TOUPPER ${CMAKE_BUILD_TYPE} UPPER_CMAKE_BUILD_TYPE) string (TOUPPER ${CMAKE_BUILD_TYPE} UPPER_CMAKE_BUILD_TYPE)
# wee look for the hg command in this paths by order of preference # we look for the hg command in this paths by order of preference
find_file(HG_CMD hg) find_file(HG_CMD hg)
if (HG_CMD STREQUAL HG_CMD-NOTFOUND) if (HG_CMD STREQUAL HG_CMD-NOTFOUND)
@@ -13,25 +13,28 @@ else (HG_CMD STREQUAL HG_CMD-NOTFOUND)
endif (HG_CMD STREQUAL HG_CMD-NOTFOUND) endif (HG_CMD STREQUAL HG_CMD-NOTFOUND)
set (OUT_FILE "${CMAKE_CURRENT_SOURCE_DIR}/AboutThisBuild.txt") set (OUT_FILE "${CMAKE_CURRENT_SOURCE_DIR}/AboutThisBuild.txt")
set (VERSION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/rtgui/version.h")
set (SHELL "/bin/bash") set (SHELL "/bin/bash")
execute_process(COMMAND ${HG_CMD} parents --template={latesttag}.{latesttagdistance} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} OUTPUT_VARIABLE HG_VERSION)
execute_process(COMMAND ${HG_CMD} parents --template={node|short} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} OUTPUT_VARIABLE HG_CHANGESET)
execute_process(COMMAND ${HG_CMD} parents --template={latesttagdistance} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} OUTPUT_VARIABLE HG_TAGDISTANCE)
# build version.h from template
configure_file (${CMAKE_CURRENT_SOURCE_DIR}/rtgui/version.h.in ${CMAKE_CURRENT_BINARY_DIR}/rtgui/version.h)
# if AboutThisBuild.txt has to be deleted, i guess that it's also the case for version.txt...
add_custom_target (AboutFile ALL add_custom_target (AboutFile ALL
COMMAND rm -f ${OUT_FILE} COMMAND rm -f ${OUT_FILE}
COMMAND rm -f ${VERSION_FILE} COMMAND echo Branch: `${HG_CMD} -R ${CMAKE_CURRENT_SOURCE_DIR} branch` >>${OUT_FILE}
COMMAND for i in \$\( ${HG_CMD} -R \"${CMAKE_CURRENT_SOURCE_DIR}\" branch \)\; do echo Branch: $i >${OUT_FILE}\; done COMMAND echo Version: ${HG_VERSION} >>${OUT_FILE}
COMMAND ${HG_CMD} -R \"${CMAKE_CURRENT_SOURCE_DIR}\" parents --template=\"Version: {latesttag}.{latesttagdistance}\\nChangset: {node|short}\\n\" >>${OUT_FILE} COMMAND echo Changset: ${HG_CHANGESET} >>${OUT_FILE}
COMMAND for i in \$\( gcc -dumpversion \) \;do echo Compiler: GCC $i >>${OUT_FILE} \; done COMMAND echo Compiler: GCC `gcc -dumpversion` >>${OUT_FILE}
COMMAND echo Processor: ${PROC_LABEL} >>${OUT_FILE} COMMAND echo Processor: ${PROC_LABEL} >>${OUT_FILE}
COMMAND echo Bit depth: ${PROC_BIT_DEPTH} >>${OUT_FILE} COMMAND echo Bit depth: ${PROC_BIT_DEPTH} >>${OUT_FILE}
COMMAND echo Gtkmm: V${GTKMM_VERSION} >>${OUT_FILE} COMMAND echo Gtkmm: V${GTKMM_VERSION} >>${OUT_FILE}
COMMAND echo Build type: ${CMAKE_BUILD_TYPE} >>${OUT_FILE} COMMAND echo Build type: ${CMAKE_BUILD_TYPE} >>${OUT_FILE}
COMMAND echo Build flags: ${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_${UPPER_CMAKE_BUILD_TYPE}} >>${OUT_FILE} COMMAND echo Build flags: ${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_${UPPER_CMAKE_BUILD_TYPE}} >>${OUT_FILE}
COMMAND echo Link flags: ${CMAKE_EXE_LINKER_FLAGS} ${CMAKE_EXE_LINKER_FLAGS_${UPPER_CMAKE_BUILD_TYPE}} >>${OUT_FILE} COMMAND echo Link flags: ${CMAKE_EXE_LINKER_FLAGS} ${CMAKE_EXE_LINKER_FLAGS_${UPPER_CMAKE_BUILD_TYPE}} >>${OUT_FILE}
COMMAND if [ \"${OPTION_OMP}\" = \"ON\" ] \; then echo OpenMP support: Yes >>${OUT_FILE} \;else echo OpenMP support: No >>${OUT_FILE} \;fi COMMAND echo OpenMP support: ${OPTION_OMP} >>${OUT_FILE}
COMMAND if [ \"${WITH_MYFILE_MMAP}\" = \"ON\" ] \; then echo MMAP support: Yes >>${OUT_FILE} \; else echo MMAP support: No >>${OUT_FILE} \;fi COMMAND echo MMAP support: ${WITH_MYFILE_MMAP} >>${OUT_FILE}
COMMAND if [ \"${WITH_RAWZOR}\" = \"ON\" ] \; then echo Rawzor support: Yes >>${OUT_FILE} \;else echo Rawzor support: No >>${OUT_FILE} \;fi COMMAND echo Rawzor support: ${WITH_RAWZOR} >>${OUT_FILE}
COMMAND ${HG_CMD} -R \"${CMAKE_CURRENT_SOURCE_DIR}\" parents --template=\"// This file is automatically generated by the Makefile \; DO NOT EDIT!\\n// You can \(should\) also tell mercurial to ignore it.\\n\\n\#ifndef _VERSION_\\n\#define _VERSION_\\n\\n\#define VERSION \\"{latesttag}.{latesttagdistance}\\"\\n\#define TAGDISTANCE {latesttagdistance}\\n\\n\#endif\\n\" >${VERSION_FILE}
COMMENT "Creating the about file" COMMENT "Creating the about file"
) )

View File

@@ -4,11 +4,18 @@
string (TOUPPER ${CMAKE_BUILD_TYPE} UPPER_CMAKE_BUILD_TYPE) string (TOUPPER ${CMAKE_BUILD_TYPE} UPPER_CMAKE_BUILD_TYPE)
set (OUT_FILE "${CMAKE_CURRENT_SOURCE_DIR}/AboutThisBuild.txt") set (OUT_FILE "${CMAKE_CURRENT_SOURCE_DIR}/AboutThisBuild.txt")
set (VERSION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/rtgui/version.h")
execute_process(COMMAND ${HG_CMD} parents --template={latesttag}.{latesttagdistance} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} OUTPUT_VARIABLE HG_VERSION)
execute_process(COMMAND ${HG_CMD} parents --template={node|short} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} OUTPUT_VARIABLE HG_CHANGESET)
execute_process(COMMAND ${HG_CMD} parents --template={latesttagdistance} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} OUTPUT_VARIABLE HG_TAGDISTANCE)
# build version.h from template
configure_file (${CMAKE_CURRENT_SOURCE_DIR}/rtgui/version.h.in ${CMAKE_CURRENT_BINARY_DIR}/rtgui/version.h)
add_custom_target (AboutFile ALL add_custom_target (AboutFile ALL
COMMAND for /F \"tokens=*\" %%i in \('hg -R \"${CMAKE_CURRENT_SOURCE_DIR}\" branch'\) do echo Branch: %%i >${OUT_FILE} COMMAND for /F \"tokens=*\" %%i in \('hg -R \"${CMAKE_CURRENT_SOURCE_DIR}\" branch'\) do echo Branch: %%i >${OUT_FILE}
COMMAND hg -R \"${CMAKE_CURRENT_SOURCE_DIR}\" parents --template=\"Version: {latesttag}.{latesttagdistance}\\nChangset: {node|short}\\n\" >>${OUT_FILE} COMMAND echo Version: ${HG_VERSION} >>${OUT_FILE}
COMMAND echo Changset: ${HG_CHANGESET} >>${OUT_FILE}
COMMAND for /F \"tokens=*\" %%i in \('gcc -dumpversion'\) do echo Compiler: GCC%%i >>${OUT_FILE} COMMAND for /F \"tokens=*\" %%i in \('gcc -dumpversion'\) do echo Compiler: GCC%%i >>${OUT_FILE}
COMMAND \(echo Processor: ${PROC_LABEL}\) >>${OUT_FILE} COMMAND \(echo Processor: ${PROC_LABEL}\) >>${OUT_FILE}
COMMAND \(echo Bit depth: ${PROC_BIT_DEPTH}\) >>${OUT_FILE} COMMAND \(echo Bit depth: ${PROC_BIT_DEPTH}\) >>${OUT_FILE}
@@ -16,9 +23,8 @@ add_custom_target (AboutFile ALL
COMMAND \(echo Build type: ${CMAKE_BUILD_TYPE}\) >>${OUT_FILE} COMMAND \(echo Build type: ${CMAKE_BUILD_TYPE}\) >>${OUT_FILE}
COMMAND \(echo Build flags: ${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_${UPPER_CMAKE_BUILD_TYPE}} \) >>${OUT_FILE} COMMAND \(echo Build flags: ${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_${UPPER_CMAKE_BUILD_TYPE}} \) >>${OUT_FILE}
COMMAND \(echo Link flags: ${CMAKE_EXE_LINKER_FLAGS} ${CMAKE_EXE_LINKER_FLAGS_${UPPER_CMAKE_BUILD_TYPE}} \) >>${OUT_FILE} COMMAND \(echo Link flags: ${CMAKE_EXE_LINKER_FLAGS} ${CMAKE_EXE_LINKER_FLAGS_${UPPER_CMAKE_BUILD_TYPE}} \) >>${OUT_FILE}
COMMAND (if ${OPTION_OMP}==ON \(echo OpenMP support: Yes\) else \(echo OpenMP support: No\)) >>${OUT_FILE} COMMAND \(echo OpenMP support: ${OPTION_OMP}\) >>${OUT_FILE}
COMMAND (if ${WITH_MYFILE_MMAP}==ON \(echo MMAP support: Yes\) else \(echo MMAP support: No\)) >>${OUT_FILE} COMMAND \(echo MMAP support: ${WITH_MYFILE_MMAP}\) >>${OUT_FILE}
COMMAND (if ${WITH_RAWZOR}==ON \(echo Rawzor support: Yes\) else \(echo Rawzor support: No\)) >>${OUT_FILE} COMMAND \(echo Rawzor support: ${WITH_RAWZOR}\) >>${OUT_FILE}
COMMAND hg -R \"${CMAKE_CURRENT_SOURCE_DIR}\" parents --template=\"// This file is automatically generated by the Makefile \; DO NOT EDIT!\\n// You can \(should\) also tell mercurial to ignore it.\\n\\n\#ifndef _VERSION_\\n\#define _VERSION_\\n\\n\#define VERSION \\"{latesttag}.{latesttagdistance}\\"\\n\#define TAGDISTANCE {latesttagdistance}\\n\\n\#endif\\n\" >${VERSION_FILE}
COMMENT "Creating the about file" COMMENT "Creating the about file"
) )

View File

@@ -242,7 +242,7 @@ endif (UNIX)
install (FILES AUTHORS.txt DESTINATION ${CREDITSDIR}) install (FILES AUTHORS.txt DESTINATION ${CREDITSDIR})
install (FILES LICENSE.txt DESTINATION ${LICENCEDIR}) install (FILES LICENSE.txt DESTINATION ${LICENCEDIR})
install (FILES AboutThisBuild.txt DESTINATION ${BINDIR}) install (FILES AboutThisBuild.txt DESTINATION ${CREDITSDIR})
add_subdirectory (rtexif) add_subdirectory (rtexif)
add_subdirectory (rtengine) add_subdirectory (rtengine)

View File

@@ -21,5 +21,8 @@
#define __CONFIG_H__ #define __CONFIG_H__
#define DATA_SEARCH_PATH "${DATADIR}" #define DATA_SEARCH_PATH "${DATADIR}"
#define DOC_SEARCH_PATH "${DOCDIR}"
#define CREDITS_SEARCH_PATH "${CREDITSDIR}"
#define LICENCE_SEARCH_PATH "${LICENCEDIR}"
#endif #endif

View File

@@ -21,6 +21,10 @@
#include <glib/gstdio.h> #include <glib/gstdio.h>
#include <safegtk.h> #include <safegtk.h>
#ifndef WIN32
#include <config.h>
#endif
extern Glib::ustring argv0; extern Glib::ustring argv0;
extern Glib::ustring versionString; extern Glib::ustring versionString;
@@ -82,7 +86,11 @@ Splash::Splash () {
splashImage->show (); splashImage->show ();
// Tab 2: the informations about the current version // Tab 2: the informations about the current version
std::string buildFileName = Glib::build_filename (argv0, "AboutThisBuild.txt"); #if defined _WIN32 || defined __APPLE__
std::string buildFileName = Glib::build_filename (argv0, "AboutThisBuild.txt");
#else
std::string buildFileName = Glib::build_filename (CREDITS_SEARCH_PATH, "AboutThisBuild.txt");
#endif
if ( Glib::file_test(buildFileName, (Glib::FILE_TEST_EXISTS)) ) { if ( Glib::file_test(buildFileName, (Glib::FILE_TEST_EXISTS)) ) {
FILE *f = g_fopen (buildFileName.c_str(), "rt"); FILE *f = g_fopen (buildFileName.c_str(), "rt");
if (f != NULL) { if (f != NULL) {
@@ -108,7 +116,7 @@ Splash::Splash () {
#if defined _WIN32 || defined __APPLE__ #if defined _WIN32 || defined __APPLE__
std::string creditsFileName = Glib::build_filename (argv0, "AUTHORS.txt"); std::string creditsFileName = Glib::build_filename (argv0, "AUTHORS.txt");
#else #else
std::string creditsFileName = Glib::build_filename (argv0, "share/doc/AUTHORS.txt"); std::string creditsFileName = Glib::build_filename (CREDITS_SEARCH_PATH, "AUTHORS.txt");
#endif #endif
if ( Glib::file_test(creditsFileName, (Glib::FILE_TEST_EXISTS)) ) { if ( Glib::file_test(creditsFileName, (Glib::FILE_TEST_EXISTS)) ) {
FILE *f = g_fopen (creditsFileName.c_str(), "rt"); FILE *f = g_fopen (creditsFileName.c_str(), "rt");
@@ -135,7 +143,7 @@ Splash::Splash () {
#if defined _WIN32 || defined __APPLE__ #if defined _WIN32 || defined __APPLE__
std::string licenseFileName = Glib::build_filename (argv0, "LICENSE.txt"); std::string licenseFileName = Glib::build_filename (argv0, "LICENSE.txt");
#else #else
std::string licenseFileName = Glib::build_filename (argv0, "share/doc/LICENSE.txt"); std::string licenseFileName = Glib::build_filename (LICENCE_SEARCH_PATH, "LICENSE.txt");
#endif #endif
if ( Glib::file_test(licenseFileName, (Glib::FILE_TEST_EXISTS)) ) { if ( Glib::file_test(licenseFileName, (Glib::FILE_TEST_EXISTS)) ) {
FILE *f = g_fopen (licenseFileName.c_str(), "rt"); FILE *f = g_fopen (licenseFileName.c_str(), "rt");

11
rtgui/version.h.in Normal file
View File

@@ -0,0 +1,11 @@
// This file is automatically generated by the Makefile - DO NOT EDIT!
// You can (should) also tell mercurial to ignore it.
#ifndef _VERSION_
#define _VERSION_
#define VERSION "${HG_VERSION}"
#define TAGDISTANCE ${HG_TAGDISTANCE}
#endif