2 # KDEWIN packager support http://download.cegit.de/kde-windows/installer
4 # The kdewin packager is searched in the following pathes and order
6 # path specified by the environment dir KDEWIN_PACKAGER_DIR
7 # <ProgramFiles>/kdewin-packager
8 # <ProgramFiles>/kdewin-installer
10 # The macro KDEWIN_PACKAGER provides package building support and should be
11 # added to the top level CMakeLists.txt as shown below
13 # if (KDEWIN_PACKAGER_FOUND)
18 # "additional options"
20 # endif (KDEWIN_PACKAGER_FOUND)
22 # The macro KDEWIN_PACKAGER adds three additional makefile targets, which could be
23 # called using the regular make tool
26 # - build kdewin package with currently used compiler and build type
27 # kdewin_package_debug_and_release
28 # - build kdewin debug and release package with currently used compiler
29 # kdewin_package_debug_and_release_mingw_and_msvc
30 # - build kdewin debug and release package with mingw and msvc compiler
34 # Copyright (c) 2006-2007, Ralf Habacker
36 # Redistribution and use is allowed according to the terms of the BSD license.
40 if(NOT KDEWIN_PACKAGER_DIR)
41 # check for enviroment variable
42 file(TO_CMAKE_PATH "$ENV{KDEWIN_PACKAGER_DIR}" KDEWIN_PACKAGER_DIR)
43 if(NOT KDEWIN_PACKAGER_DIR)
44 # search in the default program install folder
45 file(TO_CMAKE_PATH "$ENV{PROGRAMFILES}" _progFiles)
46 find_file(KDEWIN_PACKAGER_DIR_tmp kdewin-packager kdewin-installer
50 set(KDEWIN_PACKAGER_DIR ${KDEWIN_PACKAGER_DIR_tmp})
51 endif(NOT KDEWIN_PACKAGER_DIR)
52 endif(NOT KDEWIN_PACKAGER_DIR)
54 if (KDEWIN_PACKAGER_DIR)
56 find_program(KDEWIN_PACKAGER_EXECUTABLE kdewin-packager
58 ${KDEWIN_PACKAGER_DIR}/bin
61 set(KDEWIN_PACKAGER_FOUND TRUE)
62 else (KDEWIN_PACKAGER_DIR)
63 set(KDEWIN_PACKAGER_FOUND)
64 endif (KDEWIN_PACKAGER_DIR)
66 if (KDEWIN_PACKAGER_FOUND)
67 if (NOT KDEWIN_PACKAGER_FIND_QUIETLY)
68 message(STATUS "Found KDEWIN Packager: ${KDEWIN_PACKAGER_DIR}")
69 endif (NOT KDEWIN_PACKAGER_FIND_QUIETLY)
70 else (KDEWIN_PACKAGER_FOUND)
71 if (KDEWIN_PACKAGER_FIND_REQUIRED)
72 message(FATAL_ERROR "Could NOT find KDEWIN PAckager")
73 endif (KDEWIN_PACKAGER_FIND_REQUIRED)
74 endif (KDEWIN_PACKAGER_FOUND)
78 MACRO (KDEWIN_PACKAGER _name _version _notes _options)
79 if (KDEWIN_PACKAGER_FOUND)
86 add_custom_target(kdewin_package
87 COMMAND ${CMAKE_COMMAND}
88 -DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR}/temp -P ${CMAKE_BINARY_DIR}/cmake_install.cmake
89 COMMAND ${KDEWIN_PACKAGER_EXECUTABLE}
91 -root ${CMAKE_BINARY_DIR}/temp
92 -srcroot ${CMAKE_SOURCE_DIR}
97 # FIXME: cleanup does not work
98 #COMMAND rmdir /Q /S ${CMAKE_BINARY_DIR}\temp
100 add_custom_target(kdewin_package_debug_and_release
101 COMMAND ${CMAKE_COMMAND}
102 -H$(CMAKE_SOURCE_DIR)
103 -B$(CMAKE_BINARY_DIR)
104 -DCMAKE_BUILD_TYPE=Release
105 COMMAND ${CMAKE_MAKE_PROGRAM}
107 COMMAND ${CMAKE_MAKE_PROGRAM}
109 COMMAND ${CMAKE_COMMAND}
110 -H$(CMAKE_SOURCE_DIR)
111 -B$(CMAKE_BINARY_DIR)
112 -DCMAKE_BUILD_TYPE=Debug
113 COMMAND ${CMAKE_MAKE_PROGRAM}
115 COMMAND ${CMAKE_MAKE_PROGRAM}
117 COMMAND ${KDEWIN_PACKAGER_EXECUTABLE}
119 -root ${CMAKE_BINARY_DIR}/temp
120 -srcroot ${CMAKE_SOURCE_DIR}
125 # FIXME: cleanup does not work
126 #COMMAND rmdir /Q /S ${CMAKE_BINARY_DIR}\temp
129 if \"%1\" == \"package_only\" goto package_only
132 rmdir /Q /S ${CMAKE_BINARY_DIR}/temp
133 ${CMAKE_COMMAND} ${CMAKE_SOURCE_DIR} -G \"MinGW Makefiles\" -DCMAKE_BUILD_TYPE=Release
135 ${CMAKE_COMMAND} -DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR}/temp -P cmake_install.cmake
136 ${CMAKE_COMMAND} ${CMAKE_SOURCE_DIR} -G \"MinGW Makefiles\" -DCMAKE_BUILD_TYPE=Debug
138 ${CMAKE_COMMAND} -DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR}/temp -P cmake_install.cmake
140 ${CMAKE_COMMAND} ${CMAKE_SOURCE_DIR} -G \"NMake Makefiles\" -DCMAKE_BUILD_TYPE=Release
142 ${CMAKE_COMMAND} -DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR}/temp -P cmake_install.cmake
143 ${CMAKE_COMMAND} ${CMAKE_SOURCE_DIR} -G \"NMake Makefiles\" -DCMAKE_BUILD_TYPE=Debug
145 ${CMAKE_COMMAND} -DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR}/temp -P cmake_install.cmake
147 ${KDEWIN_PACKAGER_EXECUTABLE} -name ${_name} -root ${CMAKE_BINARY_DIR}/temp -srcroot ${CMAKE_SOURCE_DIR} -version ${_version} -notes \"${_notes}\" ${_options}
150 write_file(${CMAKE_BINARY_DIR}/kdewin_package_debug_and_release_mingw_and_msvc.bat "${CONTENT}")
151 add_custom_target(kdewin_package_debug_and_release_mingw_and_msvc
152 COMMAND ${CMAKE_BINARY_DIR}/kdewin_package_debug_and_release_mingw_and_msvc.bat
154 endif (KDEWIN_PACKAGER_FOUND)
155 ENDMACRO (KDEWIN_PACKAGER)