ENH: support for cpack and install of cmake-gui as mac app bundle
This commit is contained in:
parent
337c1f0b72
commit
22927ede1e
|
@ -412,6 +412,17 @@ IF(BUILD_CursesDialog)
|
||||||
ENDIF(BUILD_CursesDialog)
|
ENDIF(BUILD_CursesDialog)
|
||||||
|
|
||||||
IF(BUILD_QtDialog)
|
IF(BUILD_QtDialog)
|
||||||
|
IF(APPLE)
|
||||||
|
SET(CMAKE_INSTALL_SUBDIR
|
||||||
|
"CMake ${CMake_VERSION_MAJOR}.${CMake_VERSION_MINOR}-${CMake_VERSION_PATCH}")
|
||||||
|
IF(CMake_VERSION_DATE)
|
||||||
|
SET(CMAKE_INSTALL_SUBDIR
|
||||||
|
"CMake ${CMake_VERSION_MAJOR}.${CMake_VERSION_MINOR}-${CMake_VERSION_DATE}")
|
||||||
|
ENDIF(CMake_VERSION_DATE)
|
||||||
|
SET(CMAKE_BUNDLE_LOCATION "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_SUBDIR}")
|
||||||
|
SET(CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_SUBDIR}/cmake-gui.app/Contents")
|
||||||
|
ENDIF(APPLE)
|
||||||
|
|
||||||
SET(QT_NEED_RPATH FALSE)
|
SET(QT_NEED_RPATH FALSE)
|
||||||
IF(NOT "${QT_LIBRARY_DIR}" STREQUAL "/lib" AND NOT "${QT_LIBRARY_DIR}" STREQUAL "/usr/lib" AND NOT "${QT_LIBRARY_DIR}" STREQUAL "/lib64" AND NOT "${QT_LIBRARY_DIR}" STREQUAL "/usr/lib64")
|
IF(NOT "${QT_LIBRARY_DIR}" STREQUAL "/lib" AND NOT "${QT_LIBRARY_DIR}" STREQUAL "/usr/lib" AND NOT "${QT_LIBRARY_DIR}" STREQUAL "/lib64" AND NOT "${QT_LIBRARY_DIR}" STREQUAL "/usr/lib64")
|
||||||
SET(QT_NEED_RPATH TRUE)
|
SET(QT_NEED_RPATH TRUE)
|
||||||
|
|
|
@ -54,10 +54,15 @@ ELSE(NOT QT4_FOUND)
|
||||||
|
|
||||||
ADD_EXECUTABLE(cmake-gui WIN32 MACOSX_BUNDLE ${SRCS})
|
ADD_EXECUTABLE(cmake-gui WIN32 MACOSX_BUNDLE ${SRCS})
|
||||||
TARGET_LINK_LIBRARIES(cmake-gui CMakeLib ${QT_QTMAIN_LIBRARY} ${QT_LIBRARIES})
|
TARGET_LINK_LIBRARIES(cmake-gui CMakeLib ${QT_QTMAIN_LIBRARY} ${QT_LIBRARIES})
|
||||||
|
IF(${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} GREATER 2.4)
|
||||||
|
SET(CMAKE_INSTALL_DESTINATION_ARGS
|
||||||
|
BUNDLE DESTINATION "${CMAKE_BUNDLE_LOCATION}")
|
||||||
|
ENDIF(${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} GREATER 2.4)
|
||||||
# if qt is not static and we are on windows then skip the install
|
# if qt is not static and we are on windows then skip the install
|
||||||
# I don't want to distribute qt dlls
|
# I don't want to distribute qt dlls
|
||||||
IF(CMAKE_PACKAGE_QTGUI)
|
IF(CMAKE_PACKAGE_QTGUI)
|
||||||
INSTALL_TARGETS(/bin cmake-gui)
|
INSTALL(TARGETS cmake-gui RUNTIME DESTINATION bin
|
||||||
|
${CMAKE_INSTALL_DESTINATION_ARGS})
|
||||||
ENDIF(CMAKE_PACKAGE_QTGUI)
|
ENDIF(CMAKE_PACKAGE_QTGUI)
|
||||||
|
|
||||||
ENDIF(NOT QT4_FOUND)
|
ENDIF(NOT QT4_FOUND)
|
||||||
|
|
|
@ -34,13 +34,19 @@ QCMake::QCMake(QObject* p)
|
||||||
QDir execDir(QCoreApplication::applicationDirPath());
|
QDir execDir(QCoreApplication::applicationDirPath());
|
||||||
|
|
||||||
#if defined(Q_OS_MAC)
|
#if defined(Q_OS_MAC)
|
||||||
execDir.cd("../../../");
|
if(execDir.exists("../bin/cmake"))
|
||||||
|
{
|
||||||
|
execDir.cd("../bin");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
execDir.cd("../../../"); // path to cmake in build directory (need to fix for deployment)
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
QString cmakeCommand = QString("cmake")+cmSystemTools::GetExecutableExtension();
|
QString cmakeCommand = QString("cmake")+cmSystemTools::GetExecutableExtension();
|
||||||
cmakeCommand = execDir.filePath(cmakeCommand);
|
cmakeCommand = execDir.filePath(cmakeCommand);
|
||||||
|
|
||||||
|
|
||||||
cmSystemTools::DisableRunCommandOutput();
|
cmSystemTools::DisableRunCommandOutput();
|
||||||
cmSystemTools::SetRunCommandHideConsole(true);
|
cmSystemTools::SetRunCommandHideConsole(true);
|
||||||
cmSystemTools::SetErrorCallback(QCMake::errorCallback, this);
|
cmSystemTools::SetErrorCallback(QCMake::errorCallback, this);
|
||||||
|
|
|
@ -1,4 +1,13 @@
|
||||||
|
SET(IS_APPLE @APPLE@)
|
||||||
SET(CMAKE_PACKAGE_QTGUI @CMAKE_PACKAGE_QTGUI@)
|
SET(CMAKE_PACKAGE_QTGUI @CMAKE_PACKAGE_QTGUI@)
|
||||||
|
|
||||||
IF(CMAKE_PACKAGE_QTGUI)
|
IF(CMAKE_PACKAGE_QTGUI)
|
||||||
SET(CPACK_PACKAGE_EXECUTABLES ${CPACK_PACKAGE_EXECUTABLES} "cmake-gui" "cmake-gui(beta)")
|
SET(CPACK_PACKAGE_EXECUTABLES ${CPACK_PACKAGE_EXECUTABLES} "cmake-gui" "cmake-gui(beta)")
|
||||||
|
IF(IS_APPLE)
|
||||||
|
# for apple install we set the install prefix to /Applications and then install
|
||||||
|
# cmake into the bundle for cmake-gui
|
||||||
|
SET(CPACK_SET_DESTDIR TRUE)
|
||||||
|
ENDIF(IS_APPLE)
|
||||||
ENDIF(CMAKE_PACKAGE_QTGUI)
|
ENDIF(CMAKE_PACKAGE_QTGUI)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -66,6 +66,8 @@
|
||||||
#include "cmIncludeDirectoryCommand.cxx"
|
#include "cmIncludeDirectoryCommand.cxx"
|
||||||
#include "cmIncludeRegularExpressionCommand.cxx"
|
#include "cmIncludeRegularExpressionCommand.cxx"
|
||||||
#include "cmInstallFilesCommand.cxx"
|
#include "cmInstallFilesCommand.cxx"
|
||||||
|
#include "cmInstallCommandArguments.cxx"
|
||||||
|
#include "cmInstallCommand.cxx"
|
||||||
#include "cmInstallTargetsCommand.cxx"
|
#include "cmInstallTargetsCommand.cxx"
|
||||||
#include "cmLinkDirectoriesCommand.cxx"
|
#include "cmLinkDirectoriesCommand.cxx"
|
||||||
#include "cmListCommand.cxx"
|
#include "cmListCommand.cxx"
|
||||||
|
@ -132,6 +134,7 @@ void GetBootstrapCommands(std::list<cmCommand*>& commands)
|
||||||
commands.push_back(new cmIncludeCommand);
|
commands.push_back(new cmIncludeCommand);
|
||||||
commands.push_back(new cmIncludeDirectoryCommand);
|
commands.push_back(new cmIncludeDirectoryCommand);
|
||||||
commands.push_back(new cmIncludeRegularExpressionCommand);
|
commands.push_back(new cmIncludeRegularExpressionCommand);
|
||||||
|
commands.push_back(new cmInstallCommand);
|
||||||
commands.push_back(new cmInstallFilesCommand);
|
commands.push_back(new cmInstallFilesCommand);
|
||||||
commands.push_back(new cmInstallTargetsCommand);
|
commands.push_back(new cmInstallTargetsCommand);
|
||||||
commands.push_back(new cmLinkDirectoriesCommand);
|
commands.push_back(new cmLinkDirectoriesCommand);
|
||||||
|
|
|
@ -26,8 +26,6 @@
|
||||||
#include "cmFLTKWrapUICommand.cxx"
|
#include "cmFLTKWrapUICommand.cxx"
|
||||||
#include "cmGetTestPropertyCommand.cxx"
|
#include "cmGetTestPropertyCommand.cxx"
|
||||||
#include "cmIncludeExternalMSProjectCommand.cxx"
|
#include "cmIncludeExternalMSProjectCommand.cxx"
|
||||||
#include "cmInstallCommand.cxx"
|
|
||||||
#include "cmInstallCommandArguments.cxx"
|
|
||||||
#include "cmInstallProgramsCommand.cxx"
|
#include "cmInstallProgramsCommand.cxx"
|
||||||
#include "cmLinkLibrariesCommand.cxx"
|
#include "cmLinkLibrariesCommand.cxx"
|
||||||
#include "cmLoadCacheCommand.cxx"
|
#include "cmLoadCacheCommand.cxx"
|
||||||
|
@ -70,7 +68,6 @@ void GetPredefinedCommands(std::list<cmCommand*>&
|
||||||
commands.push_back(new cmFLTKWrapUICommand);
|
commands.push_back(new cmFLTKWrapUICommand);
|
||||||
commands.push_back(new cmGetTestPropertyCommand);
|
commands.push_back(new cmGetTestPropertyCommand);
|
||||||
commands.push_back(new cmIncludeExternalMSProjectCommand);
|
commands.push_back(new cmIncludeExternalMSProjectCommand);
|
||||||
commands.push_back(new cmInstallCommand);
|
|
||||||
commands.push_back(new cmInstallProgramsCommand);
|
commands.push_back(new cmInstallProgramsCommand);
|
||||||
commands.push_back(new cmLinkLibrariesCommand);
|
commands.push_back(new cmLinkLibrariesCommand);
|
||||||
commands.push_back(new cmLoadCacheCommand);
|
commands.push_back(new cmLoadCacheCommand);
|
||||||
|
|
|
@ -15,7 +15,7 @@
|
||||||
|
|
||||||
=========================================================================*/
|
=========================================================================*/
|
||||||
#include "cmInstallProgramsCommand.h"
|
#include "cmInstallProgramsCommand.h"
|
||||||
|
#include "cmInstallFilesGenerator.h"
|
||||||
// cmExecutableCommand
|
// cmExecutableCommand
|
||||||
bool cmInstallProgramsCommand
|
bool cmInstallProgramsCommand
|
||||||
::InitialPass(std::vector<std::string> const& args, cmExecutionStatus &)
|
::InitialPass(std::vector<std::string> const& args, cmExecutionStatus &)
|
||||||
|
|
|
@ -143,10 +143,14 @@ CMAKE_CXX_SOURCES="\
|
||||||
cmPropertyDefinitionMap \
|
cmPropertyDefinitionMap \
|
||||||
cmMakeDepend \
|
cmMakeDepend \
|
||||||
cmMakefile \
|
cmMakefile \
|
||||||
|
cmExportFileGenerator \
|
||||||
|
cmExportInstallFileGenerator \
|
||||||
|
cmInstallDirectoryGenerator \
|
||||||
cmGeneratedFileStream \
|
cmGeneratedFileStream \
|
||||||
cmGlobalGenerator \
|
cmGlobalGenerator \
|
||||||
cmLocalGenerator \
|
cmLocalGenerator \
|
||||||
cmInstallGenerator \
|
cmInstallGenerator \
|
||||||
|
cmInstallExportGenerator \
|
||||||
cmInstallFilesGenerator \
|
cmInstallFilesGenerator \
|
||||||
cmInstallScriptGenerator \
|
cmInstallScriptGenerator \
|
||||||
cmInstallTargetGenerator \
|
cmInstallTargetGenerator \
|
||||||
|
|
Loading…
Reference in New Issue