mirror of
https://gitlab.freedesktop.org/dbus/dbus.git
synced 2026-05-05 07:38:20 +02:00
* cmake/modules/FindKDEWIN.cmake, cmake/modules/FindKDEWIN_Packager.cmake cmake/modules/Win32Macros.cmake: new files from the kdewin32 project
* cmake/CMakeLists.txt: cleaned support for kdewin installer and win32 explorer wrapper
This commit is contained in:
parent
62f09b8bc6
commit
e26ed1576a
5 changed files with 273 additions and 33 deletions
|
|
@ -1,3 +1,12 @@
|
|||
2007-06-14 Ralf Habacker <ralf.habacker@freenet.de>
|
||||
|
||||
* cmake/modules/FindKDEWIN.cmake,
|
||||
cmake/modules/FindKDEWIN_Packager.cmake,
|
||||
cmake/modules/Win32Macros.cmake: new files from the
|
||||
kdewin32 project
|
||||
* cmake/CMakeLists.txt: cleaned support for kdewin installer and
|
||||
win32 explorer wrapper
|
||||
|
||||
2007-06-13 Havoc Pennington <hp@redhat.com>
|
||||
|
||||
* dbus/dbus-message.c (dbus_message_iter_open_container): Fix
|
||||
|
|
|
|||
|
|
@ -11,9 +11,6 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.4.4 FATAL_ERROR)
|
|||
# where to look first for cmake modules, before ${CMAKE_ROOT}/Modules/ is checked
|
||||
set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/modules")
|
||||
|
||||
find_package(KDEWIN_INSTALLER)
|
||||
|
||||
|
||||
#enable building of shared library
|
||||
SET(BUILD_SHARED_LIBS ON)
|
||||
|
||||
|
|
@ -21,10 +18,13 @@ if (CYGWIN)
|
|||
set (WIN32)
|
||||
endif (CYGWIN)
|
||||
|
||||
# search packages used by KDE
|
||||
# search for required packages
|
||||
if (WIN32)
|
||||
find_package(GNUWIN32)
|
||||
find_package(KDEWIN)
|
||||
find_package(KDEWIN_Packager)
|
||||
find_package(LibIconv)
|
||||
include(Win32Macros)
|
||||
addExplorerWrapper(${PACKAGE})
|
||||
endif (WIN32)
|
||||
find_package(LibXml2)
|
||||
find_package(LibExpat)
|
||||
|
|
@ -538,33 +538,8 @@ if (DBUS_DISABLE_CHECKS)
|
|||
endif(DBUS_DISABLE_CHECKS)
|
||||
MESSAGE(" ")
|
||||
|
||||
|
||||
INCLUDE(modules/CPackInstallConfig.cmake)
|
||||
|
||||
if (KDEWIN_INSTALLER_FOUND)
|
||||
if (MSVC)
|
||||
add_custom_target(kdewinpackage
|
||||
COMMAND ${KDEWIN_PACKAGER}
|
||||
-name dbus
|
||||
-root ${CMAKE_INSTALL_PREFIX}
|
||||
-srcroot ${CMAKE_SOURCE_DIR}/..
|
||||
-version ${VERSION}
|
||||
-notes "ipc service"
|
||||
-type msvc
|
||||
-strip
|
||||
-complete
|
||||
)
|
||||
else (MSVC)
|
||||
add_custom_target(kdewinpackage
|
||||
COMMAND ${KDEWIN_PACKAGER}
|
||||
-name dbus
|
||||
-root ${CMAKE_INSTALL_PREFIX}
|
||||
-srcroot ${CMAKE_SOURCE_DIR}/..
|
||||
-version ${VERSION}
|
||||
-notes "ipc service"
|
||||
-strip
|
||||
-type mingw
|
||||
-complete
|
||||
)
|
||||
endif (MSVC)
|
||||
endif (KDEWIN_INSTALLER_FOUND)
|
||||
if (KDEWIN_PACKAGER_FOUND)
|
||||
KDEWIN_PACKAGER(${PACKAGE} ${VERSION} "ipc library" "")
|
||||
endif (KDEWIN_PACKAGER_FOUND)
|
||||
|
|
|
|||
56
cmake/modules/FindKDEWIN.cmake
Normal file
56
cmake/modules/FindKDEWIN.cmake
Normal file
|
|
@ -0,0 +1,56 @@
|
|||
# - Try to find the KDEWIN library
|
||||
#
|
||||
# used environment vars
|
||||
# KDEWIN_DIR - kdewin root dir
|
||||
#
|
||||
# this will define
|
||||
# KDEWIN_FOUND - system has KDEWIN
|
||||
# KDEWIN_DIR - the KDEWIN root installation dir
|
||||
#
|
||||
# Copyright (c) 2007, Ralf Habacker, <ralf.habacker@freenet.de>
|
||||
#
|
||||
# Redistribution and use is allowed according to the terms of the BSD license.
|
||||
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
|
||||
|
||||
if (WIN32)
|
||||
IF (NOT KDEWIN_DIR)
|
||||
# check for enviroment variable
|
||||
file(TO_CMAKE_PATH "$ENV{KDEWIN_DIR}" KDEWIN_DIR)
|
||||
if(NOT KDEWIN_DIR)
|
||||
file(TO_CMAKE_PATH "$ENV{PROGRAMFILES}" _progFiles)
|
||||
if (MINGW)
|
||||
set (DIR "kdewin-mingw")
|
||||
else (MINGW)
|
||||
set (DIR "kdewin-msvc")
|
||||
endif (MINGW)
|
||||
|
||||
# search in the default program install folder
|
||||
find_file(KDEWIN_DIR_tmp ${DIR} kdewin kdewin32 gnuwin32
|
||||
PATHS
|
||||
"${_progFiles}"
|
||||
)
|
||||
set (KDEWIN_DIR ${KDEWIN_DIR_tmp})
|
||||
endif (NOT KDEWIN_DIR)
|
||||
if (KDEWIN_DIR)
|
||||
message(STATUS "Found windows supplementary package location: ${KDEWIN_DIR}")
|
||||
endif (KDEWIN_DIR)
|
||||
endif (NOT KDEWIN_DIR)
|
||||
|
||||
# this must be set every time
|
||||
if (KDEWIN_DIR)
|
||||
# add include path and library to all targets, this is required because
|
||||
# cmake's 2.4.6 FindZLib.cmake does not use CMAKE_REQUIRED... vars
|
||||
set(CMAKE_INCLUDE_PATH ${CMAKE_INCLUDE_PATH} ${KDEWIN_DIR}/include)
|
||||
set(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} ${KDEWIN_DIR}/lib)
|
||||
|
||||
set (KDEWIN_FOUND 1)
|
||||
else(KDEWIN_DIR)
|
||||
message(STATUS "Could not find the location of the windows supplementary packages which is \n"
|
||||
"\t\tenvironment variable KDEWIN_DIR\n"
|
||||
"\t\t<ProgramFiles>/${DIR}\n"
|
||||
"\t\t<ProgramFiles>/kdewin\n"
|
||||
"\t\t<ProgramFiles>/kdewin32\n"
|
||||
"\t\t<ProgramFiles>/gnuwin32\n")
|
||||
endif(KDEWIN_DIR)
|
||||
|
||||
endif (WIN32)
|
||||
156
cmake/modules/FindKDEWIN_Packager.cmake
Normal file
156
cmake/modules/FindKDEWIN_Packager.cmake
Normal file
|
|
@ -0,0 +1,156 @@
|
|||
#
|
||||
# KDEWIN packager support http://download.cegit.de/kde-windows/installer
|
||||
#
|
||||
# The kdewin packager is searched in the following pathes and order
|
||||
#
|
||||
# path specified by the environment dir KDEWIN_PACKAGER_DIR
|
||||
# <ProgramFiles>/kdewin-packager
|
||||
# <ProgramFiles>/kdewin-installer
|
||||
#
|
||||
# The macro KDEWIN_PACKAGER provides package building support and should be
|
||||
# added to the top level CMakeLists.txt as shown below
|
||||
#
|
||||
# if (KDEWIN_PACKAGER_FOUND)
|
||||
# KDEWIN_PACKAGER(
|
||||
# "projectname"
|
||||
# "version"
|
||||
# "description"
|
||||
# "additional options"
|
||||
# )
|
||||
# endif (KDEWIN_PACKAGER_FOUND)
|
||||
|
||||
# The macro KDEWIN_PACKAGER adds three additional makefile targets, which could be
|
||||
# called using the regular make tool
|
||||
#
|
||||
# kdewin_package
|
||||
# - build kdewin package with currently used compiler and build type
|
||||
# kdewin_package_debug_and_release
|
||||
# - build kdewin debug and release package with currently used compiler
|
||||
# kdewin_package_debug_and_release_mingw_and_msvc
|
||||
# - build kdewin debug and release package with mingw and msvc compiler
|
||||
#
|
||||
#
|
||||
#
|
||||
# Copyright (c) 2006-2007, Ralf Habacker
|
||||
#
|
||||
# Redistribution and use is allowed according to the terms of the BSD license.
|
||||
#
|
||||
|
||||
if (WIN32)
|
||||
if(NOT KDEWIN_PACKAGER_DIR)
|
||||
# check for enviroment variable
|
||||
file(TO_CMAKE_PATH "$ENV{KDEWIN_PACKAGER_DIR}" KDEWIN_PACKAGER_DIR)
|
||||
if(NOT KDEWIN_PACKAGER_DIR)
|
||||
# search in the default program install folder
|
||||
file(TO_CMAKE_PATH "$ENV{PROGRAMFILES}" _progFiles)
|
||||
find_file(KDEWIN_PACKAGER_DIR_tmp kdewin-packager kdewin-installer
|
||||
PATHS
|
||||
"${_progFiles}"
|
||||
)
|
||||
set(KDEWIN_PACKAGER_DIR ${KDEWIN_PACKAGER_DIR_tmp})
|
||||
endif(NOT KDEWIN_PACKAGER_DIR)
|
||||
endif(NOT KDEWIN_PACKAGER_DIR)
|
||||
|
||||
if (KDEWIN_PACKAGER_DIR)
|
||||
|
||||
find_program(KDEWIN_PACKAGER_EXECUTABLE kdewin-packager
|
||||
PATHS
|
||||
${KDEWIN_PACKAGER_DIR}/bin
|
||||
)
|
||||
|
||||
set(KDEWIN_PACKAGER_FOUND TRUE)
|
||||
else (KDEWIN_PACKAGER_DIR)
|
||||
set(KDEWIN_PACKAGER_FOUND)
|
||||
endif (KDEWIN_PACKAGER_DIR)
|
||||
|
||||
if (KDEWIN_PACKAGER_FOUND)
|
||||
if (NOT KDEWIN_PACKAGER_FIND_QUIETLY)
|
||||
message(STATUS "Found KDEWIN Packager: ${KDEWIN_PACKAGER_DIR}")
|
||||
endif (NOT KDEWIN_PACKAGER_FIND_QUIETLY)
|
||||
else (KDEWIN_PACKAGER_FOUND)
|
||||
if (KDEWIN_PACKAGER_FIND_REQUIRED)
|
||||
message(FATAL_ERROR "Could NOT find KDEWIN PAckager")
|
||||
endif (KDEWIN_PACKAGER_FIND_REQUIRED)
|
||||
endif (KDEWIN_PACKAGER_FOUND)
|
||||
|
||||
endif (WIN32)
|
||||
|
||||
MACRO (KDEWIN_PACKAGER _name _version _notes _options)
|
||||
if (KDEWIN_PACKAGER_FOUND)
|
||||
if (MSVC)
|
||||
set (type "msvc")
|
||||
else (MSVC)
|
||||
set (type "mingw")
|
||||
endif (MSVC)
|
||||
|
||||
add_custom_target(kdewin_package
|
||||
COMMAND ${CMAKE_COMMAND}
|
||||
-DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR}/temp -P ${CMAKE_BINARY_DIR}/cmake_install.cmake
|
||||
COMMAND ${KDEWIN_PACKAGER_EXECUTABLE}
|
||||
-name ${_name}
|
||||
-root ${CMAKE_BINARY_DIR}/temp
|
||||
-srcroot ${CMAKE_SOURCE_DIR}
|
||||
-version ${_version}
|
||||
-notes "${_notes}"
|
||||
-type ${type}
|
||||
${_options}
|
||||
# FIXME: cleanup does not work
|
||||
#COMMAND rmdir /Q /S ${CMAKE_BINARY_DIR}\temp
|
||||
)
|
||||
add_custom_target(kdewin_package_debug_and_release
|
||||
COMMAND ${CMAKE_COMMAND}
|
||||
-H$(CMAKE_SOURCE_DIR)
|
||||
-B$(CMAKE_BINARY_DIR)
|
||||
-DCMAKE_BUILD_TYPE=Release
|
||||
COMMAND ${CMAKE_MAKE_PROGRAM}
|
||||
clean
|
||||
COMMAND ${CMAKE_MAKE_PROGRAM}
|
||||
install/local
|
||||
COMMAND ${CMAKE_COMMAND}
|
||||
-H$(CMAKE_SOURCE_DIR)
|
||||
-B$(CMAKE_BINARY_DIR)
|
||||
-DCMAKE_BUILD_TYPE=Debug
|
||||
COMMAND ${CMAKE_MAKE_PROGRAM}
|
||||
clean
|
||||
COMMAND ${CMAKE_MAKE_PROGRAM}
|
||||
install/local
|
||||
COMMAND ${KDEWIN_PACKAGER_EXECUTABLE}
|
||||
-name ${_name}
|
||||
-root ${CMAKE_BINARY_DIR}/temp
|
||||
-srcroot ${CMAKE_SOURCE_DIR}
|
||||
-version ${_version}
|
||||
-notes "${_notes}"
|
||||
-type ${type}
|
||||
${_options}
|
||||
# FIXME: cleanup does not work
|
||||
#COMMAND rmdir /Q /S ${CMAKE_BINARY_DIR}\temp
|
||||
)
|
||||
set (CONTENT "
|
||||
if \"%1\" == \"package_only\" goto package_only
|
||||
|
||||
del CMakeCache.txt
|
||||
rmdir /Q /S ${CMAKE_BINARY_DIR}/temp
|
||||
${CMAKE_COMMAND} ${CMAKE_SOURCE_DIR} -G \"MinGW Makefiles\" -DCMAKE_BUILD_TYPE=Release
|
||||
mingw32-make
|
||||
${CMAKE_COMMAND} -DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR}/temp -P cmake_install.cmake
|
||||
${CMAKE_COMMAND} ${CMAKE_SOURCE_DIR} -G \"MinGW Makefiles\" -DCMAKE_BUILD_TYPE=Debug
|
||||
mingw32-make
|
||||
${CMAKE_COMMAND} -DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR}/temp -P cmake_install.cmake
|
||||
del CMakeCache.txt
|
||||
${CMAKE_COMMAND} ${CMAKE_SOURCE_DIR} -G \"NMake Makefiles\" -DCMAKE_BUILD_TYPE=Release
|
||||
nmake
|
||||
${CMAKE_COMMAND} -DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR}/temp -P cmake_install.cmake
|
||||
${CMAKE_COMMAND} ${CMAKE_SOURCE_DIR} -G \"NMake Makefiles\" -DCMAKE_BUILD_TYPE=Debug
|
||||
nmake
|
||||
${CMAKE_COMMAND} -DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR}/temp -P cmake_install.cmake
|
||||
:package_only
|
||||
${KDEWIN_PACKAGER_EXECUTABLE} -name ${_name} -root ${CMAKE_BINARY_DIR}/temp -srcroot ${CMAKE_SOURCE_DIR} -version ${_version} -notes \"${_notes}\" ${_options}
|
||||
"
|
||||
)
|
||||
write_file(${CMAKE_BINARY_DIR}/kdewin_package_debug_and_release_mingw_and_msvc.bat "${CONTENT}")
|
||||
add_custom_target(kdewin_package_debug_and_release_mingw_and_msvc
|
||||
COMMAND ${CMAKE_BINARY_DIR}/kdewin_package_debug_and_release_mingw_and_msvc.bat
|
||||
)
|
||||
endif (KDEWIN_PACKAGER_FOUND)
|
||||
ENDMACRO (KDEWIN_PACKAGER)
|
||||
|
||||
44
cmake/modules/Win32Macros.cmake
Normal file
44
cmake/modules/Win32Macros.cmake
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
#
|
||||
# win32 macros
|
||||
#
|
||||
# Copyright (c) 2006-2007, Ralf Habacker
|
||||
#
|
||||
# Redistribution and use is allowed according to the terms of the BSD license.
|
||||
#
|
||||
|
||||
if (WIN32)
|
||||
#
|
||||
# addExplorerWrapper creates batch files for fast access
|
||||
# to the build environment from the win32 explorer.
|
||||
#
|
||||
# For mingw and nmake projects it's opens a command shell,
|
||||
# for Visual Studio IDE's (at least tested with VS 8 2005) it
|
||||
# opens the related .sln file with paths setting specified at
|
||||
# configure time.
|
||||
#
|
||||
MACRO (addExplorerWrapper _projectname)
|
||||
# write explorer wrappers
|
||||
get_filename_component(CMAKE_BIN_PATH ${CMAKE_COMMAND} PATH)
|
||||
set (ADD_PATH "${CMAKE_BIN_PATH}")
|
||||
|
||||
if (QT_QMAKE_EXECUTABLE)
|
||||
get_filename_component(QT_BIN_PATH ${QT_QMAKE_EXECUTABLE} PATH)
|
||||
set (ADD_PATH "${ADD_PATH};${QT_BIN_PATH}")
|
||||
endif (QT_QMAKE_EXECUTABLE)
|
||||
|
||||
# add here more pathes
|
||||
|
||||
if (MINGW)
|
||||
get_filename_component(MINGW_BIN_PATH ${CMAKE_CXX_COMPILER} PATH)
|
||||
set (ADD_PATH "${ADD_PATH};${MINGW_BIN_PATH}")
|
||||
write_file (${CMAKE_BINARY_DIR}/${_projectname}-shell.bat "set PATH=${ADD_PATH};%PATH%\ncmd.exe")
|
||||
else (MINGW)
|
||||
if (CMAKE_BUILD_TOOL STREQUAL "nmake")
|
||||
get_filename_component(VC_BIN_PATH ${CMAKE_CXX_COMPILER} PATH)
|
||||
write_file (${CMAKE_BINARY_DIR}/${_projectname}-shell.bat "set PATH=${ADD_PATH};%PATH%\ncall \"${VC_BIN_PATH}\\vcvars32.bat\"\ncmd.exe")
|
||||
else (CMAKE_BUILD_TOOL STREQUAL "nmake")
|
||||
write_file (${CMAKE_BINARY_DIR}/${_projectname}-sln.bat "set PATH=${ADD_PATH};%PATH%\nstart ${_projectname}.sln")
|
||||
endif (CMAKE_BUILD_TOOL STREQUAL "nmake")
|
||||
endif (MINGW)
|
||||
ENDMACRO (addExplorerWrapper)
|
||||
endif(WIN32)
|
||||
Loading…
Add table
Reference in a new issue