| commit 3913: | 1c0332776519 |
| parent 3912: | 0198cca85572 |
| branch: | default |
8 weeks ago
Changed (Δ6.3 KB):
CMakeLists.txt (64 lines added, 64 lines removed)
cmake/dist.cmake (101 lines added, 101 lines removed)
cmake/gtk.cmake (65 lines added, 65 lines removed)
cmake/modules/FindMooCmake.cmake (365 lines added, 365 lines removed)
cmake/modules/FindMooCmakeUtils.cmake (31 lines added, 31 lines removed)
cmake/modules/FindMooCompilers.cmake (328 lines added, 328 lines removed)
cmake/modules/FindMooI18n.cmake (29 lines added, 29 lines removed)
cmake/modules/FindMooLibXml2.cmake (11 lines added, 11 lines removed)
cmake/moo-libs.cmake (93 lines added, 93 lines removed)
cmake/moo.cmake (169 lines added, 169 lines removed)
config-dirs.h.in (11 lines added, 11 lines removed)
config.cmake (134 lines added, 134 lines removed)
doc/CMakeLists.txt (50 lines added, 50 lines removed)
doc/help-sections.h (33 lines added, 33 lines removed)
doc/help.html (1540 lines added, 1540 lines removed)
doc/help/regex-search.html (44 lines added, 44 lines removed)
doc/help/regex.html (43 lines added, 43 lines removed)
doc/makedocs.cmake (61 lines added, 61 lines removed)
doc/man-medit.t2t (107 lines added, 107 lines removed)
doc/medit.t2t (50 lines added, 50 lines removed)
doc/regex.t2t (16 lines added, 16 lines removed)
medit/CMakeLists.txt (27 lines added, 27 lines removed)
medit/data/encodings/GB2312 (1 lines added, 1 lines removed)
moo/CMakeLists.txt (98 lines added, 98 lines removed)
moo/gendef.py (324 lines added, 324 lines removed)
moo/gendummy.cmake (6 lines added, 6 lines removed)
moo/genenums.py (143 lines added, 143 lines removed)
moo/genmarshal.cmake (19 lines added, 19 lines removed)
moo/glade2c.cmake.in (16 lines added, 16 lines removed)
moo/marshals.list (60 lines added, 60 lines removed)
moo/moo-config.h (63 lines added, 63 lines removed)
moo/moo-dll.c (11 lines added, 11 lines removed)
moo/mooapp/CMakeLists.cmake (31 lines added, 31 lines removed)
moo/mooapp/smclient/CMakeLists.cmake (19 lines added, 19 lines removed)
moo/mooedit/CMakeLists.cmake (130 lines added, 130 lines removed)
moo/mooedit/gtksourceview/CMakeLists.cmake (50 lines added, 50 lines removed)
moo/mooedit/gtksourceview/mangle.py (77 lines added, 77 lines removed)
moo/mooedit/langs/CMakeLists.cmake (92 lines added, 92 lines removed)
moo/mooedit/mooedit-enums-in.py (73 lines added, 73 lines removed)
moo/moofileview/CMakeLists.cmake (46 lines added, 46 lines removed)
moo/moolua/CMakeLists.cmake (23 lines added, 23 lines removed)
moo/mooutils/CMakeLists.cmake (228 lines added, 228 lines removed)
moo/mooutils/genpixbufcsource.cmake.in (14 lines added, 14 lines removed)
moo/mooutils/moocpp-cont.h (633 lines added, 633 lines removed)
moo/mooutils/moocpp-exc.h (100 lines added, 100 lines removed)
moo/mooutils/moocpp-gobject.cpp (105 lines added, 105 lines removed)
moo/mooutils/moocpp-gobject.h (221 lines added, 221 lines removed)
moo/mooutils/moocpp-gtk.h (149 lines added, 149 lines removed)
moo/mooutils/moocpp-macros.h (98 lines added, 98 lines removed)
moo/mooutils/moocpp-refptr.h (240 lines added, 240 lines removed)
Up to file-list CMakeLists.txt:
1 |
CMAKE_MINIMUM_REQUIRED(VERSION 2.6) |
|
2 |
PROJECT(MOO) |
|
3 |
||
4 |
SET(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules) |
|
5 |
FIND_PACKAGE(MooCmake) |
|
6 |
||
7 |
SET(MOO_VERSION 0.9.5) |
|
8 |
SET(MOO_PACKAGE_NAME moo) |
|
9 |
SET(MOO_EMAIL "emuntyan@sourceforge.net") |
|
10 |
SET(MOO_COPYRIGHT "2004-2009 Yevgen Muntyan <${MOO_EMAIL}>") |
|
11 |
SET(PACKAGE_BUGREPORT ${MOO_EMAIL}) |
|
12 |
SET(MOO_PACKAGE_VENDOR ${MOO_EMAIL}) |
|
13 |
||
14 |
MOO_OPTION(MOO_BUILD_SHARED_LIB ${MOO_OS_WIN32} "Build shared library") |
|
15 |
MOO_OPTION(MOO_BUILD_CTAGS ${MOO_OS_UNIX} "Build Ctags plugin" HIDDEN ${MOO_OS_WIN32} HEADER TRUE) |
|
16 |
MOO_OPTION(MOO_ENABLE_PROJECT FALSE "Build project plugin" HIDDEN TRUE) |
|
17 |
MOO_OPTION(MOO_ENABLE_UNIT_TESTS FALSE "Build unit tests" DEFINE TRUE) |
|
18 |
MOO_OPTION(MOO_ENABLE_GENERATED_FILES ${MOO_OS_UNIX} "Run gtk-update-icon-cache on install") |
|
19 |
MOO_OPTION(MOO_BROKEN_GTK_THEME FALSE "Work around bugs in gtk theme" HEADER TRUE) |
|
20 |
||
21 |
INCLUDE(cmake/moo.cmake) |
|
22 |
INCLUDE(cmake/dist.cmake) |
|
23 |
INCLUDE(cmake/gtk.cmake) |
|
24 |
||
25 |
MOO_DEFINE_VERSIONS(MOO ${MOO_VERSION}) |
|
26 |
SET(MOO_MODULE_MAJOR_VERSION 1) |
|
27 |
SET(MOO_MODULE_MINOR_VERSION 0) |
|
28 |
SET(MOO_MODULE_VERSION \"${MOO_MODULE_MAJOR_VERSION}.${MOO_MODULE_MINOR_VERSION}\") |
|
29 |
||
30 |
ADD_DEFINITIONS(-DHAVE_CONFIG_H) |
|
31 |
ADD_DEFINITIONS(-DGETTEXT_PACKAGE=\"moo\") |
|
32 |
ADD_DEFINITIONS(-DG_LOG_DOMAIN=\"Moo\") |
|
33 |
INCLUDE_DIRECTORIES(${MOO_BINARY_DIR} ${MOO_BINARY_DIR}/moo ${MOO_SOURCE_DIR}/moo) |
|
34 |
ADD_DEFINITIONS(${GTK_CFLAGS} ${GTK_CFLAGS_OTHER}) |
|
35 |
||
36 |
INCLUDE(config.cmake) |
|
37 |
||
38 |
ADD_SUBDIRECTORY(doc) |
|
39 |
ADD_SUBDIRECTORY(moo) |
|
40 |
ADD_SUBDIRECTORY(plugins) |
|
41 |
ADD_SUBDIRECTORY(medit) |
|
42 |
||
43 |
MOO_ADD_MSG_CATALOG(moo po) |
|
44 |
MOO_ADD_MSG_CATALOG(moo-gsv po-gsv) |
|
45 |
||
46 |
MOO_WRITE_CONFIG_H(config.h.in config.h @ONLY) |
|
47 |
||
48 |
CONFIGURE_FILE(config-dirs.h.in config-dirs.h @ONLY) |
|
49 |
||
50 |
IF(WIN32) |
|
51 |
GET_FILENAME_COMPONENT(_MOO_SOURCE_DIR ${MOO_SOURCE_DIR} ABSOLUTE) |
|
52 |
# TO_NATIVE_PATH damn it! Cmake is such a wonderful piece of language... |
|
53 |
STRING(REPLACE "/" "\\" _MOO_SOURCE_DIR "${_MOO_SOURCE_DIR}") |
|
54 |
GET_FILENAME_COMPONENT(_MOO_BINARY_DIR ${MOO_BINARY_DIR} ABSOLUTE) |
|
55 |
STRING(REPLACE "/" "\\" _MOO_BINARY_DIR "${_MOO_BINARY_DIR}") |
|
56 |
SET(_MOO_RUN_HOW "@") |
|
57 |
CONFIGURE_FILE(plat/win32/run-medit.in run-medit.bat) |
|
58 |
SET(_MOO_RUN_HOW "gdb --args ") |
|
59 |
CONFIGURE_FILE(plat/win32/run-medit.in run-medit-in-gdb.bat) |
|
60 |
ENDIF(WIN32) |
|
61 |
||
62 |
IF(NOT WIN32) |
|
63 |
INSTALL(PROGRAMS plat/unix/xdg-open plat/unix/xdg-email plat/unix/moo-open-html-help DESTINATION ${MOO_DATA_DIR}/scripts) |
|
64 |
ENDIF(NOT WIN32) |
|
1 |
CMAKE_MINIMUM_REQUIRED(VERSION 2.6) |
|
2 |
PROJECT(MOO) |
|
3 |
||
4 |
SET(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules) |
|
5 |
FIND_PACKAGE(MooCmake) |
|
6 |
||
7 |
SET(MOO_VERSION 0.9.5) |
|
8 |
SET(MOO_PACKAGE_NAME moo) |
|
9 |
SET(MOO_EMAIL "emuntyan@sourceforge.net") |
|
10 |
SET(MOO_COPYRIGHT "2004-2009 Yevgen Muntyan <${MOO_EMAIL}>") |
|
11 |
SET(PACKAGE_BUGREPORT ${MOO_EMAIL}) |
|
12 |
SET(MOO_PACKAGE_VENDOR ${MOO_EMAIL}) |
|
13 |
||
14 |
MOO_OPTION(MOO_BUILD_SHARED_LIB ${MOO_OS_WIN32} "Build shared library") |
|
15 |
MOO_OPTION(MOO_BUILD_CTAGS ${MOO_OS_UNIX} "Build Ctags plugin" HIDDEN ${MOO_OS_WIN32} HEADER TRUE) |
|
16 |
MOO_OPTION(MOO_ENABLE_PROJECT FALSE "Build project plugin" HIDDEN TRUE) |
|
17 |
MOO_OPTION(MOO_ENABLE_UNIT_TESTS FALSE "Build unit tests" DEFINE TRUE) |
|
18 |
MOO_OPTION(MOO_ENABLE_GENERATED_FILES ${MOO_OS_UNIX} "Run gtk-update-icon-cache on install") |
|
19 |
MOO_OPTION(MOO_BROKEN_GTK_THEME FALSE "Work around bugs in gtk theme" HEADER TRUE) |
|
20 |
||
21 |
INCLUDE(cmake/moo.cmake) |
|
22 |
INCLUDE(cmake/dist.cmake) |
|
23 |
INCLUDE(cmake/gtk.cmake) |
|
24 |
||
25 |
MOO_DEFINE_VERSIONS(MOO ${MOO_VERSION}) |
|
26 |
SET(MOO_MODULE_MAJOR_VERSION 1) |
|
27 |
SET(MOO_MODULE_MINOR_VERSION 0) |
|
28 |
SET(MOO_MODULE_VERSION \"${MOO_MODULE_MAJOR_VERSION}.${MOO_MODULE_MINOR_VERSION}\") |
|
29 |
||
30 |
ADD_DEFINITIONS(-DHAVE_CONFIG_H) |
|
31 |
ADD_DEFINITIONS(-DGETTEXT_PACKAGE=\"moo\") |
|
32 |
ADD_DEFINITIONS(-DG_LOG_DOMAIN=\"Moo\") |
|
33 |
INCLUDE_DIRECTORIES(${MOO_BINARY_DIR} ${MOO_BINARY_DIR}/moo ${MOO_SOURCE_DIR}/moo) |
|
34 |
ADD_DEFINITIONS(${GTK_CFLAGS} ${GTK_CFLAGS_OTHER}) |
|
35 |
||
36 |
INCLUDE(config.cmake) |
|
37 |
||
38 |
ADD_SUBDIRECTORY(doc) |
|
39 |
ADD_SUBDIRECTORY(moo) |
|
40 |
ADD_SUBDIRECTORY(plugins) |
|
41 |
ADD_SUBDIRECTORY(medit) |
|
42 |
||
43 |
MOO_ADD_MSG_CATALOG(moo po) |
|
44 |
MOO_ADD_MSG_CATALOG(moo-gsv po-gsv) |
|
45 |
||
46 |
MOO_WRITE_CONFIG_H(config.h.in config.h @ONLY) |
|
47 |
||
48 |
CONFIGURE_FILE(config-dirs.h.in config-dirs.h @ONLY) |
|
49 |
||
50 |
IF(WIN32) |
|
51 |
GET_FILENAME_COMPONENT(_MOO_SOURCE_DIR ${MOO_SOURCE_DIR} ABSOLUTE) |
|
52 |
# TO_NATIVE_PATH damn it! Cmake is such a wonderful piece of language... |
|
53 |
STRING(REPLACE "/" "\\" _MOO_SOURCE_DIR "${_MOO_SOURCE_DIR}") |
|
54 |
GET_FILENAME_COMPONENT(_MOO_BINARY_DIR ${MOO_BINARY_DIR} ABSOLUTE) |
|
55 |
STRING(REPLACE "/" "\\" _MOO_BINARY_DIR "${_MOO_BINARY_DIR}") |
|
56 |
SET(_MOO_RUN_HOW "@") |
|
57 |
CONFIGURE_FILE(plat/win32/run-medit.in run-medit.bat) |
|
58 |
SET(_MOO_RUN_HOW "gdb --args ") |
|
59 |
CONFIGURE_FILE(plat/win32/run-medit.in run-medit-in-gdb.bat) |
|
60 |
ENDIF(WIN32) |
|
61 |
||
62 |
IF(NOT WIN32) |
|
63 |
INSTALL(PROGRAMS plat/unix/xdg-open plat/unix/xdg-email plat/unix/moo-open-html-help DESTINATION ${MOO_DATA_DIR}/scripts) |
|
64 |
ENDIF(NOT WIN32) |
Up to file-list cmake/dist.cmake:
1 |
FILE(WRITE ${CMAKE_BINARY_DIR}/cmake_uninstall.cmake.in |
|
2 |
" |
|
3 |
IF(NOT EXISTS \"\@CMAKE_CURRENT_BINARY_DIR\@/install_manifest.txt\") |
|
4 |
MESSAGE(FATAL_ERROR \"Cannot find install manifest: \\\"\@CMAKE_CURRENT_BINARY_DIR\@/install_manifest.txt\\\"\") |
|
5 |
ENDIF(NOT EXISTS \"\@CMAKE_CURRENT_BINARY_DIR\@/install_manifest.txt\") |
|
6 |
||
7 |
FILE(READ \"\@CMAKE_CURRENT_BINARY_DIR\@/install_manifest.txt\" files) |
|
8 |
STRING(REGEX REPLACE \"\\n\" \";\" files \"\${files}\") |
|
9 |
FOREACH(file \${files}) |
|
10 |
MESSAGE(STATUS \"Uninstalling \\\"\$ENV{DESTDIR}\${file}\\\"\") |
|
11 |
IF(EXISTS \"\$ENV{DESTDIR}\${file}\") |
|
12 |
EXECUTE_PROCESS( |
|
13 |
COMMAND \"\@CMAKE_COMMAND\@\" -E remove \"\$ENV{DESTDIR}\${file}\" |
|
14 |
RESULT_VARIABLE rm_retval |
|
15 |
) |
|
16 |
IF(NOT rm_retval EQUAL 0) |
|
17 |
MESSAGE(FATAL_ERROR \"Problem when removing \\\"\$ENV{DESTDIR}\${file}\\\": \${rm_retval}\") |
|
18 |
ENDIF(NOT rm_retval EQUAL 0) |
|
19 |
ENDIF(EXISTS \"\$ENV{DESTDIR}\${file}\") |
|
20 |
ENDFOREACH(file) |
|
21 |
") |
|
22 |
CONFIGURE_FILE("${CMAKE_BINARY_DIR}/cmake_uninstall.cmake.in" "${CMAKE_BINARY_DIR}/cmake_uninstall.cmake" @ONLY) |
|
23 |
ADD_CUSTOM_TARGET(uninstall "${CMAKE_COMMAND}" -P "${CMAKE_BINARY_DIR}/cmake_uninstall.cmake") |
|
24 |
||
25 |
||
26 |
############################################################################# |
|
27 |
# |
|
28 |
# Installation dirs |
|
29 |
# |
|
30 |
||
31 |
IF(WIN32) |
|
32 |
IF("${CMAKE_INSTALL_PREFIX}" STREQUAL "C:/Program Files/MOO") |
|
33 |
SET(CMAKE_INSTALL_PREFIX "C:/Program Files/medit") |
|
34 |
ENDIF("${CMAKE_INSTALL_PREFIX}" STREQUAL "C:/Program Files/MOO") |
|
35 |
ENDIF(WIN32) |
|
36 |
||
37 |
SET(MOO_DATA_DIR ${DATADIR}/moo CACHE PATH "Where data files go") |
|
38 |
SET(MOO_LIB_DIR ${LIBDIR}/moo CACHE PATH "Where lib files go") |
|
39 |
SET(MOO_PLUGINS_DIR ${MOO_LIB_DIR}/plugins CACHE PATH "Where plugins go") |
|
40 |
SET(MOO_TEXT_LANG_FILES_DIR ${MOO_DATA_DIR}/language-specs CACHE PATH "Where lang files go") |
|
41 |
SET(MOO_DOC_DIR ${DATADIR}/doc/medit CACHE PATH "Where docs go") |
|
42 |
SET(MOO_HELP_DIR ${MOO_DOC_DIR}/help CACHE PATH "Where html help files go") |
|
43 |
FOREACH(name BINDIR DATADIR LIBDIR MOO_DATA_DIR MOO_LIB_DIR MOO_PLUGINS_DIR |
|
44 |
MOO_TEXT_LANG_FILES_DIR LOCALEDIR MOO_DOC_DIR MOO_HELP_DIR) |
|
45 |
SET(${name}_ABS ${CMAKE_INSTALL_PREFIX}/${${name}}) |
|
46 |
MARK_AS_ADVANCED(${name}) |
|
47 |
ENDFOREACH(name) |
|
48 |
||
49 |
IF(WIN32) |
|
50 |
SET(_MEDIT_LIBRARIES_DFLT) |
|
51 |
FOREACH(_moo_gtk_dir ${CMAKE_SOURCE_DIR}/../medit-bin-dist) |
|
52 |
IF(IS_DIRECTORY ${_moo_gtk_dir}) |
|
53 |
SET(_MEDIT_LIBRARIES_DFLT ${_moo_gtk_dir}) |
|
54 |
BREAK() |
|
55 |
ENDIF(IS_DIRECTORY ${_moo_gtk_dir}) |
|
56 |
ENDFOREACH(_moo_gtk_dir) |
|
57 |
SET(MEDIT_LIBRARIES ${_MEDIT_LIBRARIES_DFLT} CACHE PATH "Where Gtk libraries are located") |
|
58 |
IF(MEDIT_LIBRARIES) |
|
59 |
INSTALL(DIRECTORY ${MEDIT_LIBRARIES}/ DESTINATION ".") |
|
60 |
ENDIF(MEDIT_LIBRARIES) |
|
61 |
ENDIF(WIN32) |
|
62 |
||
63 |
||
64 |
############################################################################# |
|
65 |
# |
|
66 |
# CPack |
|
67 |
# |
|
68 |
||
69 |
SET(CPACK_PACKAGE_NAME "medit") |
|
70 |
SET(CPACK_PACKAGE_VENDOR ${MOO_PACKAGE_VENDOR}) |
|
71 |
STRING(REGEX REPLACE "([0-9]+)[.]([0-9]+)[.]([0-9]+)" "\\1" CPACK_PACKAGE_VERSION_MAJOR ${MOO_VERSION}) |
|
72 |
STRING(REGEX REPLACE "([0-9]+)[.]([0-9]+)[.]([0-9]+)" "\\2" CPACK_PACKAGE_VERSION_MINOR ${MOO_VERSION}) |
|
73 |
STRING(REGEX REPLACE "([0-9]+)[.]([0-9]+)[.]([0-9]+)" "\\3" CPACK_PACKAGE_VERSION_PATCH ${MOO_VERSION}) |
|
74 |
SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "medit a text editor") |
|
75 |
SET(CPACK_PACKAGE_FILE_NAME ${CPACK_PACKAGE_NAME}-${MOO_VERSION}) |
|
76 |
SET(CPACK_RESOURCE_FILE_LICENSE ${CMAKE_SOURCE_DIR}/COPYING.GPL) |
|
77 |
SET(CPACK_RESOURCE_FILE_README ${CMAKE_SOURCE_DIR}/README) |
|
78 |
# SET(CPACK_GENERATOR) |
|
79 |
SET(CPACK_PACKAGE_EXECUTABLES medit medit) |
|
80 |
||
81 |
SET(CPACK_SOURCE_PACKAGE_FILE_NAME "medit-${MOO_VERSION}") |
|
82 |
SET(CPACK_SOURCE_IGNORE_FILES "/build/;/[.]hg;/[.]git") |
|
83 |
||
84 |
SET(CPACK_PACKAGE_INSTALL_DIRECTORY "medit") |
|
85 |
SET(CPACK_PACKAGE_INSTALL_REGISTRY_KEY "medit") |
|
86 |
# SET(CPACK_NSIS_MUI_ICON) |
|
87 |
# SET(CPACK_NSIS_MUI_UNIICON) |
|
88 |
# SET(CPACK_PACKAGE_ICON ${CMAKE_SOURCE_DIR}/moo/mooutils/pixmaps/medit.ico) |
|
89 |
# SET(CPACK_NSIS_EXTRA_INSTALL_COMMANDS) |
|
90 |
# SET(CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS) |
|
91 |
# SET(CPACK_NSIS_COMPRESSOR) |
|
92 |
SET(CPACK_NSIS_DISPLAY_NAME "medit ${MOO_VERSION}") |
|
93 |
SET(CPACK_NSIS_PACKAGE_NAME "medit") |
|
94 |
# SET(CPACK_NSIS_INSTALLED_ICON_NAME) |
|
95 |
SET(CPACK_NSIS_HELP_LINK "http://mooedit.sourceforge.net/") |
|
96 |
SET(CPACK_NSIS_URL_INFO_ABOUT "http://mooedit.sourceforge.net/") |
|
97 |
SET(CPACK_NSIS_CONTACT ${MOO_PACKAGE_VENDOR}) |
|
98 |
# SET(CPACK_NSIS_CREATE_ICONS_EXTRA) |
|
99 |
# SET(CPACK_NSIS_DELETE_ICONS_EXTRA) |
|
100 |
||
101 |
INCLUDE(CPack) |
|
1 |
FILE(WRITE ${CMAKE_BINARY_DIR}/cmake_uninstall.cmake.in |
|
2 |
" |
|
3 |
IF(NOT EXISTS \"\@CMAKE_CURRENT_BINARY_DIR\@/install_manifest.txt\") |
|
4 |
MESSAGE(FATAL_ERROR \"Cannot find install manifest: \\\"\@CMAKE_CURRENT_BINARY_DIR\@/install_manifest.txt\\\"\") |
|
5 |
ENDIF(NOT EXISTS \"\@CMAKE_CURRENT_BINARY_DIR\@/install_manifest.txt\") |
|
6 |
||
7 |
FILE(READ \"\@CMAKE_CURRENT_BINARY_DIR\@/install_manifest.txt\" files) |
|
8 |
STRING(REGEX REPLACE \"\\n\" \";\" files \"\${files}\") |
|
9 |
FOREACH(file \${files}) |
|
10 |
MESSAGE(STATUS \"Uninstalling \\\"\$ENV{DESTDIR}\${file}\\\"\") |
|
11 |
IF(EXISTS \"\$ENV{DESTDIR}\${file}\") |
|
12 |
EXECUTE_PROCESS( |
|
13 |
COMMAND \"\@CMAKE_COMMAND\@\" -E remove \"\$ENV{DESTDIR}\${file}\" |
|
14 |
RESULT_VARIABLE rm_retval |
|
15 |
) |
|
16 |
IF(NOT rm_retval EQUAL 0) |
|
17 |
MESSAGE(FATAL_ERROR \"Problem when removing \\\"\$ENV{DESTDIR}\${file}\\\": \${rm_retval}\") |
|
18 |
ENDIF(NOT rm_retval EQUAL 0) |
|
19 |
ENDIF(EXISTS \"\$ENV{DESTDIR}\${file}\") |
|
20 |
ENDFOREACH(file) |
|
21 |
") |
|
22 |
CONFIGURE_FILE("${CMAKE_BINARY_DIR}/cmake_uninstall.cmake.in" "${CMAKE_BINARY_DIR}/cmake_uninstall.cmake" @ONLY) |
|
23 |
ADD_CUSTOM_TARGET(uninstall "${CMAKE_COMMAND}" -P "${CMAKE_BINARY_DIR}/cmake_uninstall.cmake") |
|
24 |
||
25 |
||
26 |
############################################################################# |
|
27 |
# |
|
28 |
# Installation dirs |
|
29 |
# |
|
30 |
||
31 |
IF(WIN32) |
|
32 |
IF("${CMAKE_INSTALL_PREFIX}" STREQUAL "C:/Program Files/MOO") |
|
33 |
SET(CMAKE_INSTALL_PREFIX "C:/Program Files/medit") |
|
34 |
ENDIF("${CMAKE_INSTALL_PREFIX}" STREQUAL "C:/Program Files/MOO") |
|
35 |
ENDIF(WIN32) |
|
36 |
||
37 |
SET(MOO_DATA_DIR ${DATADIR}/moo CACHE PATH "Where data files go") |
|
38 |
SET(MOO_LIB_DIR ${LIBDIR}/moo CACHE PATH "Where lib files go") |
|
39 |
SET(MOO_PLUGINS_DIR ${MOO_LIB_DIR}/plugins CACHE PATH "Where plugins go") |
|
40 |
SET(MOO_TEXT_LANG_FILES_DIR ${MOO_DATA_DIR}/language-specs CACHE PATH "Where lang files go") |
|
41 |
SET(MOO_DOC_DIR ${DATADIR}/doc/medit CACHE PATH "Where docs go") |
|
42 |
SET(MOO_HELP_DIR ${MOO_DOC_DIR}/help CACHE PATH "Where html help files go") |
|
43 |
FOREACH(name BINDIR DATADIR LIBDIR MOO_DATA_DIR MOO_LIB_DIR MOO_PLUGINS_DIR |
|
44 |
MOO_TEXT_LANG_FILES_DIR LOCALEDIR MOO_DOC_DIR MOO_HELP_DIR) |
|
45 |
SET(${name}_ABS ${CMAKE_INSTALL_PREFIX}/${${name}}) |
|
46 |
MARK_AS_ADVANCED(${name}) |
|
47 |
ENDFOREACH(name) |
|
48 |
||
49 |
IF(WIN32) |
|
50 |
SET(_MEDIT_LIBRARIES_DFLT) |
|
51 |
FOREACH(_moo_gtk_dir ${CMAKE_SOURCE_DIR}/../medit-bin-dist) |
|
52 |
IF(IS_DIRECTORY ${_moo_gtk_dir}) |
|
53 |
SET(_MEDIT_LIBRARIES_DFLT ${_moo_gtk_dir}) |
|
54 |
BREAK() |
|
55 |
ENDIF(IS_DIRECTORY ${_moo_gtk_dir}) |
|
56 |
ENDFOREACH(_moo_gtk_dir) |
|
57 |
SET(MEDIT_LIBRARIES ${_MEDIT_LIBRARIES_DFLT} CACHE PATH "Where Gtk libraries are located") |
|
58 |
IF(MEDIT_LIBRARIES) |
|
59 |
INSTALL(DIRECTORY ${MEDIT_LIBRARIES}/ DESTINATION ".") |
|
60 |
ENDIF(MEDIT_LIBRARIES) |
|
61 |
ENDIF(WIN32) |
|
62 |
||
63 |
||
64 |
############################################################################# |
|
65 |
# |
|
66 |
# CPack |
|
67 |
# |
|
68 |
||
69 |
SET(CPACK_PACKAGE_NAME "medit") |
|
70 |
SET(CPACK_PACKAGE_VENDOR ${MOO_PACKAGE_VENDOR}) |
|
71 |
STRING(REGEX REPLACE "([0-9]+)[.]([0-9]+)[.]([0-9]+)" "\\1" CPACK_PACKAGE_VERSION_MAJOR ${MOO_VERSION}) |
|
72 |
STRING(REGEX REPLACE "([0-9]+)[.]([0-9]+)[.]([0-9]+)" "\\2" CPACK_PACKAGE_VERSION_MINOR ${MOO_VERSION}) |
|
73 |
STRING(REGEX REPLACE "([0-9]+)[.]([0-9]+)[.]([0-9]+)" "\\3" CPACK_PACKAGE_VERSION_PATCH ${MOO_VERSION}) |
|
74 |
SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "medit a text editor") |
|
75 |
SET(CPACK_PACKAGE_FILE_NAME ${CPACK_PACKAGE_NAME}-${MOO_VERSION}) |
|
76 |
SET(CPACK_RESOURCE_FILE_LICENSE ${CMAKE_SOURCE_DIR}/COPYING.GPL) |
|
77 |
SET(CPACK_RESOURCE_FILE_README ${CMAKE_SOURCE_DIR}/README) |
|
78 |
# SET(CPACK_GENERATOR) |
|
79 |
SET(CPACK_PACKAGE_EXECUTABLES medit medit) |
|
80 |
||
81 |
SET(CPACK_SOURCE_PACKAGE_FILE_NAME "medit-${MOO_VERSION}") |
|
82 |
SET(CPACK_SOURCE_IGNORE_FILES "/build/;/[.]hg;/[.]git") |
|
83 |
||
84 |
SET(CPACK_PACKAGE_INSTALL_DIRECTORY "medit") |
|
85 |
SET(CPACK_PACKAGE_INSTALL_REGISTRY_KEY "medit") |
|
86 |
# SET(CPACK_NSIS_MUI_ICON) |
|
87 |
# SET(CPACK_NSIS_MUI_UNIICON) |
|
88 |
# SET(CPACK_PACKAGE_ICON ${CMAKE_SOURCE_DIR}/moo/mooutils/pixmaps/medit.ico) |
|
89 |
# SET(CPACK_NSIS_EXTRA_INSTALL_COMMANDS) |
|
90 |
# SET(CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS) |
|
91 |
# SET(CPACK_NSIS_COMPRESSOR) |
|
92 |
SET(CPACK_NSIS_DISPLAY_NAME "medit ${MOO_VERSION}") |
|
93 |
SET(CPACK_NSIS_PACKAGE_NAME "medit") |
|
94 |
# SET(CPACK_NSIS_INSTALLED_ICON_NAME) |
|
95 |
SET(CPACK_NSIS_HELP_LINK "http://mooedit.sourceforge.net/") |
|
96 |
SET(CPACK_NSIS_URL_INFO_ABOUT "http://mooedit.sourceforge.net/") |
|
97 |
SET(CPACK_NSIS_CONTACT ${MOO_PACKAGE_VENDOR}) |
|
98 |
# SET(CPACK_NSIS_CREATE_ICONS_EXTRA) |
|
99 |
# SET(CPACK_NSIS_DELETE_ICONS_EXTRA) |
|
100 |
||
101 |
INCLUDE(CPack) |
Up to file-list cmake/gtk.cmake:
1 |
FIND_PACKAGE(PkgConfig) |
|
2 |
||
3 |
MACRO(_MOO_GET_PKG_CONFIG_VARIABLE cmakevar pkgconfigvar pkgname) |
|
4 |
MOO_EXEC_OR_DIE("pkg-config --variable=${pkgconfigvar} ${pkgname}" |
|
5 |
COMMAND ${PKG_CONFIG_EXECUTABLE} --variable=${pkgconfigvar} ${pkgname} |
|
6 |
OUTPUT_VARIABLE ${cmakevar}) |
|
7 |
STRING(STRIP ${${cmakevar}} ${cmakevar}) |
|
8 |
ENDMACRO(_MOO_GET_PKG_CONFIG_VARIABLE) |
|
9 |
||
10 |
PKG_CHECK_MODULES(GLIB REQUIRED glib-2.0>=2.14) |
|
11 |
PKG_CHECK_MODULES(GTK REQUIRED gtk+-2.0 glib-2.0 gmodule-2.0 gthread-2.0 gobject-2.0) |
|
12 |
PKG_CHECK_MODULES(GIO gio-2.0) |
|
13 |
||
14 |
LIST(APPEND MOO_DEP_LIBS ${GTK_LIBRARIES}) |
|
15 |
IF(GIO_FOUND) |
|
16 |
LIST(APPEND MOO_DEP_LIBS ${GIO_LIBRARIES}) |
|
17 |
ENDIF(GIO_FOUND) |
|
18 |
||
19 |
MOO_ADD_COMPILE_DEFINITIONS(RELEASE -DG_DISABLE_CAST_CHECKS -DG_DISABLE_ASSERT) |
|
20 |
MOO_ADD_COMPILER_FLAGS(GCC WIN32 -mms-bitfields) |
|
21 |
||
22 |
# Do not use pkg-config because the official win32 binary |
|
23 |
# is distributed without pc files |
|
24 |
FIND_PACKAGE(MooLibXml2) |
|
25 |
IF(NOT LIBXML2_FOUND) |
|
26 |
MOO_ERROR("Libxml2 not found") |
|
27 |
ENDIF(NOT LIBXML2_FOUND) |
|
28 |
SET(MOO_USE_XML TRUE) |
|
29 |
MOO_DEFINE_H(MOO_USE_XML) |
|
30 |
LIST(APPEND MOO_DEP_LIBS ${LIBXML2_LIBRARIES}) |
|
31 |
||
32 |
LINK_DIRECTORIES(${GTK_LIBRARY_DIRS} ${XML_LIBRARY_DIRS}) |
|
33 |
||
34 |
_MOO_GET_PKG_CONFIG_VARIABLE(_moo_gdk_target target gdk-2.0) |
|
35 |
SET(GDK_X11 FALSE) |
|
36 |
SET(GDK_WIN32 FALSE) |
|
37 |
SET(GDK_QUARTZ FALSE) |
|
38 |
IF("${_moo_gdk_target}" STREQUAL "x11") |
|
39 |
SET(GDK_X11 TRUE) |
|
40 |
ELSEIF("${_moo_gdk_target}" STREQUAL "quartz") |
|
41 |
SET(GDK_QUARTZ TRUE) |
|
42 |
ELSEIF("${_moo_gdk_target}" STREQUAL "win32") |
|
43 |
SET(GDK_WIN32 TRUE) |
|
44 |
ENDIF("${_moo_gdk_target}" STREQUAL "x11") |
|
45 |
||
46 |
MACRO(_MOO_FIND_PROGRAM_OR_DIE varname progname pkgvar pkgname) |
|
47 |
_MOO_GET_PKG_CONFIG_VARIABLE(_moo_pkg_exec_prefix exec_prefix ${pkgname}) |
|
48 |
IF(pkgvar) |
|
49 |
_MOO_GET_PKG_CONFIG_VARIABLE(_moo_pkg_prog ${pkgvar} ${pkgname}) |
|
50 |
SET(_moo_prg_names "${_moo_pkg_prog}" ${progname}) |
|
51 |
ELSE(pkgvar) |
|
52 |
SET(_moo_prg_names ${progname}) |
|
53 |
ENDIF(pkgvar) |
|
54 |
FIND_PROGRAM(${varname} |
|
55 |
NAMES ${_moo_prg_names} |
|
56 |
PATHS "${_moo_pkg_exec_prefix}/bin" |
|
57 |
DOC "Path to ${progname} executable") |
|
58 |
MARK_AS_ADVANCED(${varname}) |
|
59 |
IF(NOT ${varname}) |
|
60 |
MOO_ERROR("Could not find ${progname} executable") |
|
61 |
ENDIF(NOT ${varname}) |
|
62 |
ENDMACRO(_MOO_FIND_PROGRAM_OR_DIE) |
|
63 |
||
64 |
_MOO_FIND_PROGRAM_OR_DIE(GLIB_GENMARSHAL_EXECUTABLE glib-genmarshal glib_genmarshal glib-2.0) |
|
65 |
|
|
1 |
FIND_PACKAGE(PkgConfig) |
|
2 |
||
3 |
MACRO(_MOO_GET_PKG_CONFIG_VARIABLE cmakevar pkgconfigvar pkgname) |
|
4 |
MOO_EXEC_OR_DIE("pkg-config --variable=${pkgconfigvar} ${pkgname}" |
|
5 |
COMMAND ${PKG_CONFIG_EXECUTABLE} --variable=${pkgconfigvar} ${pkgname} |
|
6 |
OUTPUT_VARIABLE ${cmakevar}) |
|
7 |
STRING(STRIP ${${cmakevar}} ${cmakevar}) |
|
8 |
ENDMACRO(_MOO_GET_PKG_CONFIG_VARIABLE) |
|
9 |
||
10 |
PKG_CHECK_MODULES(GLIB REQUIRED glib-2.0>=2.14) |
|
11 |
PKG_CHECK_MODULES(GTK REQUIRED gtk+-2.0 glib-2.0 gmodule-2.0 gthread-2.0 gobject-2.0) |
|
12 |
PKG_CHECK_MODULES(GIO gio-2.0) |
|
13 |
||
14 |
LIST(APPEND MOO_DEP_LIBS ${GTK_LIBRARIES}) |
|
15 |
IF(GIO_FOUND) |
|
16 |
LIST(APPEND MOO_DEP_LIBS ${GIO_LIBRARIES}) |
|
17 |
ENDIF(GIO_FOUND) |
|
18 |
||
19 |
MOO_ADD_COMPILE_DEFINITIONS(RELEASE -DG_DISABLE_CAST_CHECKS -DG_DISABLE_ASSERT) |
|
20 |
MOO_ADD_COMPILER_FLAGS(GCC WIN32 -mms-bitfields) |
|
21 |
||
22 |
# Do not use pkg-config because the official win32 binary |
|
23 |
# is distributed without pc files |
|
24 |
FIND_PACKAGE(MooLibXml2) |
|
25 |
IF(NOT LIBXML2_FOUND) |
|
26 |
MOO_ERROR("Libxml2 not found") |
|
27 |
ENDIF(NOT LIBXML2_FOUND) |
|
28 |
SET(MOO_USE_XML TRUE) |
|
29 |
MOO_DEFINE_H(MOO_USE_XML) |
|
30 |
LIST(APPEND MOO_DEP_LIBS ${LIBXML2_LIBRARIES}) |
|
31 |
||
32 |
LINK_DIRECTORIES(${GTK_LIBRARY_DIRS} ${XML_LIBRARY_DIRS}) |
|
33 |
||
34 |
_MOO_GET_PKG_CONFIG_VARIABLE(_moo_gdk_target target gdk-2.0) |
|
35 |
SET(GDK_X11 FALSE) |
|
36 |
SET(GDK_WIN32 FALSE) |
|
37 |
SET(GDK_QUARTZ FALSE) |
|
38 |
IF("${_moo_gdk_target}" STREQUAL "x11") |
|
39 |
SET(GDK_X11 TRUE) |
|
40 |
ELSEIF("${_moo_gdk_target}" STREQUAL "quartz") |
|
41 |
SET(GDK_QUARTZ TRUE) |
|
42 |
ELSEIF("${_moo_gdk_target}" STREQUAL "win32") |
|
43 |
SET(GDK_WIN32 TRUE) |
|
44 |
ENDIF("${_moo_gdk_target}" STREQUAL "x11") |
|
45 |
||
46 |
MACRO(_MOO_FIND_PROGRAM_OR_DIE varname progname pkgvar pkgname) |
|
47 |
_MOO_GET_PKG_CONFIG_VARIABLE(_moo_pkg_exec_prefix exec_prefix ${pkgname}) |
|
48 |
IF(pkgvar) |
|
49 |
_MOO_GET_PKG_CONFIG_VARIABLE(_moo_pkg_prog ${pkgvar} ${pkgname}) |
|
50 |
SET(_moo_prg_names "${_moo_pkg_prog}" ${progname}) |
|
51 |
ELSE(pkgvar) |
|
52 |
SET(_moo_prg_names ${progname}) |
|
53 |
ENDIF(pkgvar) |
|
54 |
FIND_PROGRAM(${varname} |
|
55 |
NAMES ${_moo_prg_names} |
|
56 |
PATHS "${_moo_pkg_exec_prefix}/bin" |
|
57 |
DOC "Path to ${progname} executable") |
|
58 |
MARK_AS_ADVANCED(${varname}) |
|
59 |
IF(NOT ${varname}) |
|
60 |
MOO_ERROR("Could not find ${progname} executable") |
|
61 |
ENDIF(NOT ${varname}) |
|
62 |
ENDMACRO(_MOO_FIND_PROGRAM_OR_DIE) |
|
63 |
||
64 |
_MOO_FIND_PROGRAM_OR_DIE(GLIB_GENMARSHAL_EXECUTABLE glib-genmarshal glib_genmarshal glib-2.0) |
|
65 |
_MOO_FIND_PROGRAM_OR_DIE(GDK_PIXBUF_CSOURCE_EXECUTABLE gdk-pixbuf-csource "" gtk+-2.0) |
Up to file-list cmake/modules/FindMooCmake.cmake:
1 |
OPTION(MOO_DEV_MODE_CMAKE "Enable developer mode for cmake - bunch of checks, warnings, etc." OFF) |
|
2 |
MARK_AS_ADVANCED(MOO_DEV_MODE_CMAKE) |
|
3 |
||
4 |
IF(MOO_DEV_MODE_CMAKE) |
|
5 |
MACRO(MOO_DEBUG) |
|
6 |
MESSAGE(${ARGN}) |
|
7 |
ENDMACRO(MOO_DEBUG) |
|
8 |
ELSE(MOO_DEV_MODE_CMAKE) |
|
9 |
MACRO(MOO_DEBUG) |
|
10 |
ENDMACRO(MOO_DEBUG) |
|
11 |
ENDIF(MOO_DEV_MODE_CMAKE) |
|
12 |
||
13 |
MACRO(MOO_ERROR) |
|
14 |
MESSAGE(FATAL_ERROR ${ARGN}) |
|
15 |
ENDMACRO(MOO_ERROR) |
|
16 |
||
17 |
########################################################################### |
|
18 |
# |
|
19 |
# Build type |
|
20 |
# |
|
21 |
||
22 |
IF("${CMAKE_BUILD_TYPE}" STREQUAL "") |
|
23 |
SET(CMAKE_BUILD_TYPE Release) |
|
24 |
ENDIF("${CMAKE_BUILD_TYPE}" STREQUAL "") |
|
25 |
STRING(TOUPPER ${CMAKE_BUILD_TYPE} MOO_BUILD_TYPE) |
|
26 |
SET(MOO_BUILD_SUBTYPE ${MOO_BUILD_TYPE}) |
|
27 |
IF("${MOO_BUILD_TYPE}" STREQUAL "RELWITHDEBINFO" OR "${MOO_BUILD_TYPE}" STREQUAL "MINSIZEREL") |
|
28 |
SET(MOO_BUILD_TYPE RELEASE) |
|
29 |
ELSEIF(NOT "${MOO_BUILD_TYPE}" STREQUAL "DEBUG" AND NOT "${MOO_BUILD_TYPE}" STREQUAL "RELEASE") |
|
30 |
MOO_ERROR("Unknown build type '${MOO_BUILD_TYPE}'") |
|
31 |
ENDIF("${MOO_BUILD_TYPE}" STREQUAL "RELWITHDEBINFO" OR "${MOO_BUILD_TYPE}" STREQUAL "MINSIZEREL") |
|
32 |
MOO_DEBUG(STATUS "MOO_BUILD_TYPE: ${MOO_BUILD_TYPE}") |
|
33 |
||
34 |
IF("${MOO_BUILD_TYPE}" STREQUAL "DEBUG") |
|
35 |
SET(MOO_DEBUG TRUE) |
|
36 |
ELSE("${MOO_BUILD_TYPE}" STREQUAL "DEBUG") |
|
37 |
SET(MOO_DEBUG FALSE) |
|
38 |
ENDIF("${MOO_BUILD_TYPE}" STREQUAL "DEBUG") |
|
39 |
||
40 |
########################################################################### |
|
41 |
# |
|
42 |
# MOO_DEFINE_H |
|
43 |
# |
|
44 |
||
45 |
SET(__MOO_DEFINE_H_FILE__ ${CMAKE_BINARY_DIR}/moo-config.h.in) |
|
46 |
FILE(WRITE ${__MOO_DEFINE_H_FILE__} "") |
|
47 |
||
48 |
MACRO(MOO_DEFINE_H _moo_varname) |
|
49 |
SET(_moo_comment) |
|
50 |
FOREACH(_moo_arg ${ARGN}) |
|
51 |
SET(_moo_comment ${_moo_arg}) |
|
52 |
ENDFOREACH(_moo_arg) |
|
53 |
IF(_moo_comment) |
|
54 |
FILE(APPEND ${__MOO_DEFINE_H_FILE__} "/* ${_moo_comment} */\n") |
|
55 |
ENDIF(_moo_comment) |
|
56 |
FILE(APPEND ${__MOO_DEFINE_H_FILE__} "#moodefine ${_moo_varname}\n\n") |
|
57 |
ENDMACRO(MOO_DEFINE_H) |
|
58 |
||
59 |
MACRO(MOO_MAKE_ABSOLUTE_INPUT_FILE file out_var) |
|
60 |
SET(_moo_maif_abs_file "${file}") |
|
61 |
IF(NOT EXISTS "${_moo_maif_abs_file}") |
|
62 |
IF(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${_moo_maif_abs_file}") |
|
63 |
SET(_moo_maif_abs_file ${CMAKE_CURRENT_SOURCE_DIR}/${_moo_maif_abs_file}) |
|
64 |
ENDIF(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${_moo_maif_abs_file}") |
|
65 |
ENDIF(NOT EXISTS "${_moo_maif_abs_file}") |
|
66 |
IF(NOT EXISTS "${_moo_maif_abs_file}") |
|
67 |
MOO_ERROR("File '${_moo_maif_abs_file}' does not exist") |
|
68 |
ENDIF(NOT EXISTS "${_moo_maif_abs_file}") |
|
69 |
SET(${out_var} "${_moo_maif_abs_file}") |
|
70 |
ENDMACRO(MOO_MAKE_ABSOLUTE_INPUT_FILE) |
|
71 |
||
72 |
MACRO(MOO_MAKE_ABSOLUTE_OUTPUT_FILE file out_var) |
|
73 |
SET(_moo_maof_abs_file "${file}") |
|
74 |
IF(NOT IS_ABSOLUTE "${_moo_maof_abs_file}") |
|
75 |
SET(_moo_maof_abs_file "${CMAKE_CURRENT_BINARY_DIR}/${_moo_maof_abs_file}") |
|
76 |
ENDIF(NOT IS_ABSOLUTE "${_moo_maof_abs_file}") |
|
77 |
SET(${out_var} "${_moo_maof_abs_file}") |
|
78 |
ENDMACRO(MOO_MAKE_ABSOLUTE_OUTPUT_FILE) |
|
79 |
||
80 |
MACRO(MOO_WRITE_CONFIG_H _moo_in_file _moo_out_file) |
|
81 |
MOO_MAKE_ABSOLUTE_INPUT_FILE("${_moo_in_file}" _moo_abs_in_file) |
|
82 |
MOO_MAKE_ABSOLUTE_OUTPUT_FILE("${_moo_out_file}" _moo_abs_out_file) |
|
83 |
||
84 |
FILE(WRITE ${_moo_abs_out_file}-in.moo "#ifndef __CONFIG_H__\n") |
|
85 |
FILE(APPEND ${_moo_abs_out_file}-in.moo "#define __CONFIG_H__\n\n") |
|
86 |
FILE(READ ${_moo_abs_in_file} _moo_contents) |
|
87 |
FILE(APPEND ${_moo_abs_out_file}-in.moo ${_moo_contents}) |
|
88 |
FILE(APPEND ${_moo_abs_out_file}-in.moo "\n") |
|
89 |
||
90 |
FILE(STRINGS ${__MOO_DEFINE_H_FILE__} _moo_wch_lines) |
|
91 |
FOREACH(_moo_wch_l ${_moo_wch_lines}) |
|
92 |
IF(_moo_wch_l MATCHES "^#moodefine (.*)$") |
|
93 |
STRING(REGEX REPLACE "^#moodefine (.*)$" "\\1" _moo_wch_var "${_moo_wch_l}") |
|
94 |
IF(${_moo_wch_var}) |
|
95 |
FILE(APPEND ${_moo_abs_out_file}-in.moo "#define ${_moo_wch_var} 1\n\n") |
|
96 |
ELSE(${_moo_wch_var}) |
|
97 |
FILE(APPEND ${_moo_abs_out_file}-in.moo "/* #undef ${_moo_wch_var} */\n\n") |
|
98 |
ENDIF(${_moo_wch_var}) |
|
99 |
ELSE(_moo_wch_l MATCHES "^#moodefine (.*)$") |
|
100 |
FILE(APPEND ${_moo_abs_out_file}-in.moo "${_moo_wch_l}\n") |
|
101 |
ENDIF(_moo_wch_l MATCHES "^#moodefine (.*)$") |
|
102 |
ENDFOREACH(_moo_wch_l) |
|
103 |
||
104 |
FILE(APPEND ${_moo_abs_out_file}-in.moo "#endif /* __CONFIG_H__ */\n") |
|
105 |
||
106 |
CONFIGURE_FILE(${_moo_abs_out_file}-in.moo ${_moo_abs_out_file} ${ARGN}) |
|
107 |
ENDMACRO(MOO_WRITE_CONFIG_H) |
|
108 |
||
109 |
########################################################################### |
|
110 |
# |
|
111 |
# OS |
|
112 |
# |
|
113 |
||
114 |
SET(_MOO_KNOWN_PLATFORMS CYGWIN WIN32 DARWIN UNIX FREEBSD BSD LINUX FDO) |
|
115 |
FOREACH(_moo_os ${_MOO_KNOWN_PLATFORMS}) |
|
116 |
SET(MOO_OS_${_moo_os} FALSE) |
|
117 |
ENDFOREACH(_moo_os) |
|
118 |
||
119 |
IF(APPLE) |
|
120 |
SET(MOO_OS_DARWIN TRUE) |
|
121 |
ENDIF(APPLE) |
|
122 |
||
123 |
IF(CYGWIN) |
|
124 |
SET(MOO_OS_CYGWIN TRUE) |
|
125 |
ENDIF(CYGWIN) |
|
126 |
||
127 |
IF(WIN32 OR CYGWIN) |
|
128 |
SET(MOO_OS_WIN32 TRUE) |
|
129 |
ENDIF(WIN32 OR CYGWIN) |
|
130 |
||
131 |
IF(UNIX) |
|
132 |
SET(MOO_OS_UNIX TRUE) |
|
133 |
ENDIF(UNIX) |
|
134 |
||
135 |
IF(UNIX AND NOT WIN32 AND NOT APPLE) |
|
136 |
SET(MOO_OS_FDO TRUE) |
|
137 |
ENDIF(UNIX AND NOT WIN32 AND NOT APPLE) |
|
138 |
||
139 |
IF(CMAKE_SYSTEM_NAME MATCHES "FreeBSD") |
|
140 |
SET(MOO_OS_FREEBSD TRUE) |
|
141 |
ENDIF(CMAKE_SYSTEM_NAME MATCHES "FreeBSD") |
|
142 |
||
143 |
IF(CMAKE_SYSTEM_NAME MATCHES "BSD") |
|
144 |
SET(MOO_OS_BSD TRUE) |
|
145 |
ENDIF(CMAKE_SYSTEM_NAME MATCHES "BSD") |
|
146 |
||
147 |
IF(CMAKE_SYSTEM_NAME MATCHES "Linux") |
|
148 |
SET(MOO_OS_LINUX TRUE) |
|
149 |
ENDIF(CMAKE_SYSTEM_NAME MATCHES "Linux") |
|
150 |
||
151 |
IF(MOO_OS_DARWIN OR MOO_OS_FREEBSD) |
|
152 |
SET(MOO_OS_BSD TRUE) |
|
153 |
ENDIF(MOO_OS_DARWIN OR MOO_OS_FREEBSD) |
|
154 |
||
155 |
IF(MOO_OS_BSD OR MOO_OS_LINUX) |
|
156 |
SET(MOO_OS_UNIX TRUE) |
|
157 |
ENDIF(MOO_OS_BSD OR MOO_OS_LINUX) |
|
158 |
||
159 |
########################################################################### |
|
160 |
# |
|
161 |
# Installation dirs |
|
162 |
# |
|
163 |
||
164 |
SET(BINDIR bin CACHE PATH "bin") |
|
165 |
SET(DATADIR share CACHE PATH "share") |
|
166 |
SET(DESKTOPFILEDIR ${DATADIR}/applications CACHE PATH "share/applications") |
|
167 |
SET(LIBDIR lib CACHE PATH "lib") |
|
168 |
SET(LOCALEDIR ${DATADIR}/locale CACHE PATH "Where mo files go") |
|
169 |
||
170 |
########################################################################### |
|
171 |
# |
|
172 |
# Aux macros |
|
173 |
# |
|
174 |
||
175 |
# MOO_COLLECT_ARGS(ARG FOO VAR foo ARG BAR VAR bar ARGN ...) |
|
176 |
# caller: SOME_MACRO(FOO foo1 foo2 foo3 BAR bar1) |
|
177 |
MACRO(MOO_COLLECT_ARGS) |
|
178 |
SET(_moo_args) |
|
179 |
SET(_moo_vars) |
|
180 |
SET(_moo_argn) |
|
181 |
||
182 |
SET(_moo_what) |
|
183 |
||
184 |
FOREACH(_moo_a ${ARGN}) |
|
185 |
IF("${_moo_what}" STREQUAL "ARG") |
|
186 |
LIST(APPEND _moo_args ${_moo_a}) |
|
187 |
SET(_moo_what VAR) |
|
188 |
ELSEIF("${_moo_what}" STREQUAL "VAR") |
|
189 |
LIST(APPEND _moo_vars ${_moo_a}) |
|
190 |
SET(_moo_what) |
|
191 |
ELSEIF("${_moo_what}" STREQUAL "ARGN") |
|
192 |
LIST(APPEND _moo_argn ${_moo_a}) |
|
193 |
ELSEIF("${_moo_a}" STREQUAL "ARG") |
|
194 |
SET(_moo_what ARG) |
|
195 |
ELSEIF("${_moo_a}" STREQUAL "ARGN") |
|
196 |
SET(_moo_what ARGN) |
|
197 |
ELSE("${_moo_what}" STREQUAL "ARG") |
|
198 |
MOO_ERROR("bad argument ${moo_a}") |
|
199 |
ENDIF("${_moo_what}" STREQUAL "ARG") |
|
200 |
ENDFOREACH(_moo_a) |
|
201 |
||
202 |
# MESSAGE("args: ${_moo_args}") |
|
203 |
# MESSAGE("vars: ${_moo_vars}") |
|
204 |
# MESSAGE("argn: ${_moo_argn}") |
|
205 |
||
206 |
SET(_moo_what -1) |
|
207 |
FOREACH(_moo_arg ${_moo_argn}) |
|
208 |
LIST(FIND _moo_args "${_moo_arg}" _moo_what2) |
|
209 |
IF(NOT _moo_what2 EQUAL -1) |
|
210 |
SET(_moo_what ${_moo_what2}) |
|
211 |
ELSE(NOT _moo_what2 EQUAL -1) |
|
212 |
IF(_moo_what EQUAL -1) |
|
213 |
MOO_ERROR("Invalid argument ${_moo_arg}") |
|
214 |
ENDIF(_moo_what EQUAL -1) |
|
215 |
LIST(GET _moo_vars ${_moo_what} _moo_v) |
|
216 |
LIST(APPEND ${_moo_v} "${_moo_arg}") |
|
217 |
ENDIF(NOT _moo_what2 EQUAL -1) |
|
218 |
ENDFOREACH(_moo_arg) |
|
219 |
||
220 |
LIST(LENGTH _moo_args _moo_nargs) |
|
221 |
MATH(EXPR _moo_nargs "${_moo_nargs} - 1") |
|
222 |
FOREACH(_moo_what RANGE ${_moo_nargs}) |
|
223 |
LIST(GET _moo_args ${_moo_what} _moo_a) |
|
224 |
LIST(GET _moo_vars ${_moo_what} _moo_v) |
|
225 |
#MOO_DEBUG("${_moo_what}. ${_moo_v}: ${${_moo_v}}") |
|
226 |
ENDFOREACH(_moo_what) |
|
227 |
ENDMACRO(MOO_COLLECT_ARGS) |
|
228 |
||
229 |
MACRO(__MOO_SET_SIMPLE_VAR var) |
|
230 |
SET(${var} ${ARGN}) |
|
231 |
ENDMACRO(__MOO_SET_SIMPLE_VAR) |
|
232 |
||
233 |
# _MOO_COLLECT_ARGS_IMPL(FOO foo setfoo BAR bar setbar ARGN ...) |
|
234 |
MACRO(_MOO_COLLECT_ARGS_IMPL) |
|
235 |
SET(_moo__cai_args) |
|
236 |
SET(_moo__cai_vars) |
|
237 |
SET(_moo__cai_macros) |
|
238 |
SET(_moo__cai_argn) |
|
239 |
||
240 |
SET(_moo__cai_what) |
|
241 |
||
242 |
FOREACH(_moo__cai_a ${ARGN}) |
|
243 |
IF("${_moo__cai_what}" STREQUAL "VAR") |
|
244 |
LIST(APPEND _moo__cai_vars ${_moo__cai_a}) |
|
245 |
SET(_moo__cai_what SETVAR) |
|
246 |
ELSEIF("${_moo__cai_what}" STREQUAL "SETVAR") |
|
247 |
LIST(APPEND _moo__cai_macros ${_moo__cai_a}) |
|
248 |
SET(_moo__cai_what) |
|
249 |
ELSEIF("${_moo__cai_what}" STREQUAL "ARGN") |
|
250 |
LIST(APPEND _moo__cai_argn ${_moo__cai_a}) |
|
251 |
ELSEIF("${_moo__cai_a}" STREQUAL "ARGN") |
|
252 |
SET(_moo__cai_what ARGN) |
|
253 |
ELSE("${_moo__cai_what}" STREQUAL "VAR") |
|
254 |
LIST(APPEND _moo__cai_args ${_moo__cai_a}) |
|
255 |
SET(_moo__cai_what VAR) |
|
256 |
ENDIF("${_moo__cai_what}" STREQUAL "VAR") |
|
257 |
ENDFOREACH(_moo__cai_a) |
|
258 |
||
259 |
# MOO_DEBUG("args: ${_moo__cai_args}") |
|
260 |
# MOO_DEBUG("vars: ${_moo__cai_vars}") |
|
261 |
# MOO_DEBUG("macros: ${_moo__cai_macros}") |
|
262 |
# MOO_DEBUG("argn: ${_moo__cai_argn}") |
|
263 |
||
264 |
SET(_moo__cai_what -1) |
|
265 |
FOREACH(_moo__cai_arg ${_moo__cai_argn}) |
|
266 |
LIST(FIND _moo__cai_args "${_moo__cai_arg}" _moo__cai_what2) |
|
267 |
IF(NOT _moo__cai_what2 EQUAL -1) |
|
268 |
SET(_moo__cai_what ${_moo__cai_what2}) |
|
269 |
ELSE(NOT _moo__cai_what2 EQUAL -1) |
|
270 |
IF(_moo__cai_what EQUAL -1) |
|
271 |
MOO_ERROR("Invalid argument ${_moo__cai_arg}") |
|
272 |
ENDIF(_moo__cai_what EQUAL -1) |
|
273 |
LIST(GET _moo__cai_vars ${_moo__cai_what} _moo__cai_v) |
|
274 |
LIST(GET _moo__cai_macros ${_moo__cai_what} _moo__cai_sv) |
|
275 |
IF("${_moo__cai_sv}" STREQUAL "__MOO_SET_SIMPLE_VAR") |
|
276 |
# MOO_DEBUG("${_moo__cai_v} = ${_moo__cai_arg}") |
|
277 |
__MOO_SET_SIMPLE_VAR(${_moo__cai_v} ${_moo__cai_arg}) |
|
278 |
ELSE("${_moo__cai_sv}" STREQUAL "__MOO_SET_SIMPLE_VAR") |
|
279 |
MOO_ERROR("Invalid argument ${_moo__cai_sv}") |
|
280 |
ENDIF("${_moo__cai_sv}" STREQUAL "__MOO_SET_SIMPLE_VAR") |
|
281 |
ENDIF(NOT _moo__cai_what2 EQUAL -1) |
|
282 |
ENDFOREACH(_moo__cai_arg) |
|
283 |
||
284 |
LIST(LENGTH _moo__cai_args _moo__cai_nargs) |
|
285 |
MATH(EXPR _moo__cai_nargs "${_moo__cai_nargs} - 1") |
|
286 |
FOREACH(_moo__cai_what RANGE ${_moo__cai_nargs}) |
|
287 |
LIST(GET _moo__cai_args ${_moo__cai_what} _moo__cai_a) |
|
288 |
LIST(GET _moo__cai_vars ${_moo__cai_what} _moo__cai_v) |
|
289 |
# MOO_DEBUG("${_moo__cai_what}. ${_moo__cai_v}: ${${_moo__cai_v}}") |
|
290 |
ENDFOREACH(_moo__cai_what) |
|
291 |
ENDMACRO(_MOO_COLLECT_ARGS_IMPL) |
|
292 |
||
293 |
# MOO_COLLECT_SIMPLE_ARGS(FOO foo BAR bar ARGN ...) |
|
294 |
MACRO(MOO_COLLECT_SIMPLE_ARGS) |
|
295 |
SET(_moo_csa_impl_argn) |
|
296 |
||
297 |
SET(_moo_csa_argn ${ARGN}) |
|
298 |
SET(_moo_csa_i 0) |
|
299 |
LIST(LENGTH _moo_csa_argn _moo_csa_nargs) |
|
300 |
WHILE(_moo_csa_i LESS _moo_csa_nargs) |
|
301 |
LIST(GET _moo_csa_argn ${_moo_csa_i} _moo_csa_a) |
|
302 |
IF("${_moo_csa_a}" STREQUAL "ARGN") |
|
303 |
BREAK() |
|
304 |
ENDIF("${_moo_csa_a}" STREQUAL "ARGN") |
|
305 |
MATH(EXPR _moo_csa_i "${_moo_csa_i} + 1") |
|
306 |
LIST(GET _moo_csa_argn ${_moo_csa_i} _moo_csa_v) |
|
307 |
LIST(APPEND _moo_csa_impl_argn "${_moo_csa_a}") |
|
308 |
LIST(APPEND _moo_csa_impl_argn "${_moo_csa_v}") |
|
309 |
LIST(APPEND _moo_csa_impl_argn __MOO_SET_SIMPLE_VAR) |
|
310 |
MATH(EXPR _moo_csa_i "${_moo_csa_i} + 1") |
|
311 |
ENDWHILE(_moo_csa_i LESS _moo_csa_nargs) |
|
312 |
||
313 |
WHILE(_moo_csa_i LESS _moo_csa_nargs) |
|
314 |
LIST(GET _moo_csa_argn ${_moo_csa_i} _moo_csa_a) |
|
315 |
LIST(APPEND _moo_csa_impl_argn "${_moo_csa_a}") |
|
316 |
MATH(EXPR _moo_csa_i "${_moo_csa_i} + 1") |
|
317 |
ENDWHILE(_moo_csa_i LESS _moo_csa_nargs) |
|
318 |
||
319 |
# MOO_DEBUG("MOO_COLLECT_SIMPLE_ARGS: ${_moo_csa_argn}") |
|
320 |
# MOO_DEBUG("MOO_COLLECT_SIMPLE_ARGS: ${_moo_csa_impl_argn}") |
|
321 |
||
322 |
_MOO_COLLECT_ARGS_IMPL(${_moo_csa_impl_argn}) |
|
323 |
ENDMACRO(MOO_COLLECT_SIMPLE_ARGS) |
|
324 |
||
325 |
########################################################################### |
|
326 |
# |
|
327 |
# MOO_OPTION |
|
328 |
# |
|
329 |
||
330 |
MACRO(MOO_OPTION variable dfltval helpstring) |
|
331 |
IF(DEFINED __MOO_OPTION_SET_${variable}) |
|
332 |
MOO_ERROR("Option ${variable} is already created") |
|
333 |
ENDIF(DEFINED __MOO_OPTION_SET_${variable}) |
|
334 |
SET(_moo_option_hidden) |
|
335 |
SET(_moo_option_header) |
|
336 |
SET(_moo_option_define) |
|
337 |
MOO_COLLECT_SIMPLE_ARGS(HIDDEN _moo_option_hidden HEADER _moo_option_header DEFINE _moo_option_define ARGN ${ARGN}) |
|
338 |
IF(NOT _moo_option_hidden) |
|
339 |
OPTION(${variable} "${helpstring}" "${dfltval}") |
|
340 |
ELSE(NOT _moo_option_hidden) |
|
341 |
SET(${variable} "${dfltval}" CACHE BOOL "${helpstring}") |
|
342 |
MARK_AS_ADVANCED(${variable}) |
|
343 |
ENDIF(NOT _moo_option_hidden) |
|
344 |
IF(_moo_option_header) |
|
345 |
# MOO_DEBUG(${variable}) |
|
346 |
MOO_DEFINE_H(${variable} "${helpstring}") |
|
347 |
ENDIF(_moo_option_header) |
|
348 |
IF(_moo_option_define AND ${variable}) |
|
349 |
ADD_DEFINITIONS(-D${variable}=1) |
|
350 |
ENDIF(_moo_option_define AND ${variable}) |
|
351 |
SET(__MOO_OPTION_SET_${variable} 1) |
|
352 |
# MOO_DEBUG(STATUS "Option ${variable}") |
|
353 |
ENDMACRO(MOO_OPTION) |
|
354 |
||
355 |
MACRO(MOO_CHECK_OPTION variable) |
|
356 |
IF(NOT DEFINED __MOO_OPTION_SET_${variable}) |
|
357 |
MOO_ERROR("Option ${variable} is not set") |
|
358 |
ENDIF(NOT DEFINED __MOO_OPTION_SET_${variable}) |
|
359 |
ENDMACRO(MOO_CHECK_OPTION) |
|
360 |
||
361 |
MOO_OPTION(MOO_DEV_MODE FALSE "Enable developer mode - bunch of checks, warnings, etc." DEFINE 1) |
|
362 |
||
363 |
FIND_PACKAGE(MooCompilers) |
|
364 |
FIND_PACKAGE(MooCmakeUtils) |
|
365 |
|
|
1 |
OPTION(MOO_DEV_MODE_CMAKE "Enable developer mode for cmake - bunch of checks, warnings, etc." OFF) |
|
2 |
MARK_AS_ADVANCED(MOO_DEV_MODE_CMAKE) |
|
3 |
||
4 |
IF(MOO_DEV_MODE_CMAKE) |
|
5 |
MACRO(MOO_DEBUG) |
|
6 |
MESSAGE(${ARGN}) |
|
7 |
ENDMACRO(MOO_DEBUG) |
|
8 |
ELSE(MOO_DEV_MODE_CMAKE) |
|
9 |
MACRO(MOO_DEBUG) |
|
10 |
ENDMACRO(MOO_DEBUG) |
|
11 |
ENDIF(MOO_DEV_MODE_CMAKE) |
|
12 |
||
13 |
MACRO(MOO_ERROR) |
|
14 |
MESSAGE(FATAL_ERROR ${ARGN}) |
|
15 |
ENDMACRO(MOO_ERROR) |
|
16 |
||
17 |
########################################################################### |
|
18 |
# |
|
19 |
# Build type |
|
20 |
# |
|
21 |
||
22 |
IF("${CMAKE_BUILD_TYPE}" STREQUAL "") |
|
23 |
SET(CMAKE_BUILD_TYPE Release) |
|
24 |
ENDIF("${CMAKE_BUILD_TYPE}" STREQUAL "") |
|
25 |
STRING(TOUPPER ${CMAKE_BUILD_TYPE} MOO_BUILD_TYPE) |
|
26 |
SET(MOO_BUILD_SUBTYPE ${MOO_BUILD_TYPE}) |
|
27 |
IF("${MOO_BUILD_TYPE}" STREQUAL "RELWITHDEBINFO" OR "${MOO_BUILD_TYPE}" STREQUAL "MINSIZEREL") |
|
28 |
SET(MOO_BUILD_TYPE RELEASE) |
|
29 |
ELSEIF(NOT "${MOO_BUILD_TYPE}" STREQUAL "DEBUG" AND NOT "${MOO_BUILD_TYPE}" STREQUAL "RELEASE") |
|
30 |
MOO_ERROR("Unknown build type '${MOO_BUILD_TYPE}'") |
|
31 |
ENDIF("${MOO_BUILD_TYPE}" STREQUAL "RELWITHDEBINFO" OR "${MOO_BUILD_TYPE}" STREQUAL "MINSIZEREL") |
|
32 |
MOO_DEBUG(STATUS "MOO_BUILD_TYPE: ${MOO_BUILD_TYPE}") |
|
33 |
||
34 |
IF("${MOO_BUILD_TYPE}" STREQUAL "DEBUG") |
|
35 |
SET(MOO_DEBUG TRUE) |
|
36 |
ELSE("${MOO_BUILD_TYPE}" STREQUAL "DEBUG") |
|
37 |
SET(MOO_DEBUG FALSE) |
|
38 |
ENDIF("${MOO_BUILD_TYPE}" STREQUAL "DEBUG") |
|
39 |
||
40 |
########################################################################### |
|
41 |
# |
|
42 |
# MOO_DEFINE_H |
|
43 |
# |
|
44 |
||
45 |
SET(__MOO_DEFINE_H_FILE__ ${CMAKE_BINARY_DIR}/moo-config.h.in) |
|
46 |
FILE(WRITE ${__MOO_DEFINE_H_FILE__} "") |
|
47 |
||
48 |
MACRO(MOO_DEFINE_H _moo_varname) |
|
49 |
SET(_moo_comment) |
|
50 |
FOREACH(_moo_arg ${ARGN}) |
|
51 |
SET(_moo_comment ${_moo_arg}) |
|
52 |
ENDFOREACH(_moo_arg) |
|
53 |
IF(_moo_comment) |
|
54 |
FILE(APPEND ${__MOO_DEFINE_H_FILE__} "/* ${_moo_comment} */\n") |
|
55 |
ENDIF(_moo_comment) |
|
56 |
FILE(APPEND ${__MOO_DEFINE_H_FILE__} "#moodefine ${_moo_varname}\n\n") |
|
57 |
ENDMACRO(MOO_DEFINE_H) |
|
58 |
||
59 |
MACRO(MOO_MAKE_ABSOLUTE_INPUT_FILE file out_var) |
|
60 |
SET(_moo_maif_abs_file "${file}") |
|
61 |
IF(NOT EXISTS "${_moo_maif_abs_file}") |
|
62 |
IF(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${_moo_maif_abs_file}") |
|
63 |
SET(_moo_maif_abs_file ${CMAKE_CURRENT_SOURCE_DIR}/${_moo_maif_abs_file}) |
|
64 |
ENDIF(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${_moo_maif_abs_file}") |
|
65 |
ENDIF(NOT EXISTS "${_moo_maif_abs_file}") |
|
66 |
IF(NOT EXISTS "${_moo_maif_abs_file}") |
|
67 |
MOO_ERROR("File '${_moo_maif_abs_file}' does not exist") |
|
68 |
ENDIF(NOT EXISTS "${_moo_maif_abs_file}") |
|
69 |
SET(${out_var} "${_moo_maif_abs_file}") |
|
70 |
ENDMACRO(MOO_MAKE_ABSOLUTE_INPUT_FILE) |
|
71 |
||
72 |
MACRO(MOO_MAKE_ABSOLUTE_OUTPUT_FILE file out_var) |
|
73 |
SET(_moo_maof_abs_file "${file}") |
|
74 |
IF(NOT IS_ABSOLUTE "${_moo_maof_abs_file}") |
|
75 |
SET(_moo_maof_abs_file "${CMAKE_CURRENT_BINARY_DIR}/${_moo_maof_abs_file}") |
|
76 |
ENDIF(NOT IS_ABSOLUTE "${_moo_maof_abs_file}") |
|
77 |
SET(${out_var} "${_moo_maof_abs_file}") |
|
78 |
ENDMACRO(MOO_MAKE_ABSOLUTE_OUTPUT_FILE) |
|
79 |
||
80 |
MACRO(MOO_WRITE_CONFIG_H _moo_in_file _moo_out_file) |
|
81 |
MOO_MAKE_ABSOLUTE_INPUT_FILE("${_moo_in_file}" _moo_abs_in_file) |
|
82 |
MOO_MAKE_ABSOLUTE_OUTPUT_FILE("${_moo_out_file}" _moo_abs_out_file) |
|
83 |
||
84 |
FILE(WRITE ${_moo_abs_out_file}-in.moo "#ifndef __CONFIG_H__\n") |
|
85 |
FILE(APPEND ${_moo_abs_out_file}-in.moo "#define __CONFIG_H__\n\n") |
|
86 |
FILE(READ ${_moo_abs_in_file} _moo_contents) |
|
87 |
FILE(APPEND ${_moo_abs_out_file}-in.moo ${_moo_contents}) |
|
88 |
FILE(APPEND ${_moo_abs_out_file}-in.moo "\n") |
|
89 |
||
90 |
FILE(STRINGS ${__MOO_DEFINE_H_FILE__} _moo_wch_lines) |
|
91 |
FOREACH(_moo_wch_l ${_moo_wch_lines}) |
|
92 |
IF(_moo_wch_l MATCHES "^#moodefine (.*)$") |
|
93 |
STRING(REGEX REPLACE "^#moodefine (.*)$" "\\1" _moo_wch_var "${_moo_wch_l}") |
|
94 |
IF(${_moo_wch_var}) |
|
95 |
FILE(APPEND ${_moo_abs_out_file}-in.moo "#define ${_moo_wch_var} 1\n\n") |
|
96 |
ELSE(${_moo_wch_var}) |
|
97 |
FILE(APPEND ${_moo_abs_out_file}-in.moo "/* #undef ${_moo_wch_var} */\n\n") |
|
98 |
ENDIF(${_moo_wch_var}) |
|
99 |
ELSE(_moo_wch_l MATCHES "^#moodefine (.*)$") |
|
100 |
FILE(APPEND ${_moo_abs_out_file}-in.moo "${_moo_wch_l}\n") |
|
101 |
ENDIF(_moo_wch_l MATCHES "^#moodefine (.*)$") |
|
102 |
ENDFOREACH(_moo_wch_l) |
|
103 |
||
104 |
FILE(APPEND ${_moo_abs_out_file}-in.moo "#endif /* __CONFIG_H__ */\n") |
|
105 |
||
106 |
CONFIGURE_FILE(${_moo_abs_out_file}-in.moo ${_moo_abs_out_file} ${ARGN}) |
|
107 |
ENDMACRO(MOO_WRITE_CONFIG_H) |
|
108 |
||
109 |
########################################################################### |
|
110 |
# |
|
111 |
# OS |
|
112 |
# |
|
113 |
||
114 |
SET(_MOO_KNOWN_PLATFORMS CYGWIN WIN32 DARWIN UNIX FREEBSD BSD LINUX FDO) |
|
115 |
FOREACH(_moo_os ${_MOO_KNOWN_PLATFORMS}) |
|
116 |
SET(MOO_OS_${_moo_os} FALSE) |
|
117 |
ENDFOREACH(_moo_os) |
|
118 |
||
119 |
IF(APPLE) |
|
120 |
SET(MOO_OS_DARWIN TRUE) |
|
121 |
ENDIF(APPLE) |
|
122 |
||
123 |
IF(CYGWIN) |
|
124 |
SET(MOO_OS_CYGWIN TRUE) |
|
125 |
ENDIF(CYGWIN) |
|
126 |
||
127 |
IF(WIN32 OR CYGWIN) |
|
128 |
SET(MOO_OS_WIN32 TRUE) |
|
129 |
ENDIF(WIN32 OR CYGWIN) |
|
130 |
||
131 |
IF(UNIX) |
|
132 |
SET(MOO_OS_UNIX TRUE) |
|
133 |
ENDIF(UNIX) |
|
134 |
||
135 |
IF(UNIX AND NOT WIN32 AND NOT APPLE) |
|
136 |
SET(MOO_OS_FDO TRUE) |
|
137 |
ENDIF(UNIX AND NOT WIN32 AND NOT APPLE) |
|
138 |
||
139 |
IF(CMAKE_SYSTEM_NAME MATCHES "FreeBSD") |
|
140 |
SET(MOO_OS_FREEBSD TRUE) |
|
141 |
ENDIF(CMAKE_SYSTEM_NAME MATCHES "FreeBSD") |
|
142 |
||
143 |
IF(CMAKE_SYSTEM_NAME MATCHES "BSD") |
|
144 |
SET(MOO_OS_BSD TRUE) |
|
145 |
ENDIF(CMAKE_SYSTEM_NAME MATCHES "BSD") |
|
146 |
||
147 |
IF(CMAKE_SYSTEM_NAME MATCHES "Linux") |
|
148 |
SET(MOO_OS_LINUX TRUE) |
|
149 |
ENDIF(CMAKE_SYSTEM_NAME MATCHES "Linux") |
|
150 |
||
151 |
IF(MOO_OS_DARWIN OR MOO_OS_FREEBSD) |
|
152 |
SET(MOO_OS_BSD TRUE) |
|
153 |
ENDIF(MOO_OS_DARWIN OR MOO_OS_FREEBSD) |
|
154 |
||
155 |
IF(MOO_OS_BSD OR MOO_OS_LINUX) |
|
156 |
SET(MOO_OS_UNIX TRUE) |
|
157 |
ENDIF(MOO_OS_BSD OR MOO_OS_LINUX) |
|
158 |
||
159 |
########################################################################### |
|
160 |
# |
|
161 |
# Installation dirs |
|
162 |
# |
|
163 |
||
164 |
SET(BINDIR bin CACHE PATH "bin") |
|
165 |
SET(DATADIR share CACHE PATH "share") |
|
166 |
SET(DESKTOPFILEDIR ${DATADIR}/applications CACHE PATH "share/applications") |
|
167 |
SET(LIBDIR lib CACHE PATH "lib") |
|
168 |
SET(LOCALEDIR ${DATADIR}/locale CACHE PATH "Where mo files go") |
|
169 |
||
170 |
########################################################################### |
|
171 |
# |
|
172 |
# Aux macros |
|
173 |
# |
|
174 |
||
175 |
# MOO_COLLECT_ARGS(ARG FOO VAR foo ARG BAR VAR bar ARGN ...) |
|
176 |
# caller: SOME_MACRO(FOO foo1 foo2 foo3 BAR bar1) |
|
177 |
MACRO(MOO_COLLECT_ARGS) |
|
178 |
SET(_moo_args) |
|
179 |
SET(_moo_vars) |
|
180 |
SET(_moo_argn) |
|
181 |
||
182 |
SET(_moo_what) |
|
183 |
||
184 |
FOREACH(_moo_a ${ARGN}) |
|
185 |
IF("${_moo_what}" STREQUAL "ARG") |
|
186 |
LIST(APPEND _moo_args ${_moo_a}) |
|
187 |
SET(_moo_what VAR) |
|
188 |
ELSEIF("${_moo_what}" STREQUAL "VAR") |
|
189 |
LIST(APPEND _moo_vars ${_moo_a}) |
|
190 |
SET(_moo_what) |
|
191 |
ELSEIF("${_moo_what}" STREQUAL "ARGN") |
|
192 |
LIST(APPEND _moo_argn ${_moo_a}) |
|
193 |
ELSEIF("${_moo_a}" STREQUAL "ARG") |
|
194 |
SET(_moo_what ARG) |
|
195 |
ELSEIF("${_moo_a}" STREQUAL "ARGN") |
|
196 |
SET(_moo_what ARGN) |
|
197 |
ELSE("${_moo_what}" STREQUAL "ARG") |
|
198 |
MOO_ERROR("bad argument ${moo_a}") |
|
199 |
ENDIF("${_moo_what}" STREQUAL "ARG") |
|
200 |
ENDFOREACH(_moo_a) |
|
201 |
||
202 |
# MESSAGE("args: ${_moo_args}") |
|
203 |
# MESSAGE("vars: ${_moo_vars}") |
|
204 |
# MESSAGE("argn: ${_moo_argn}") |
|
205 |
||
206 |
SET(_moo_what -1) |
|
207 |
FOREACH(_moo_arg ${_moo_argn}) |
|
208 |
LIST(FIND _moo_args "${_moo_arg}" _moo_what2) |
|
209 |
IF(NOT _moo_what2 EQUAL -1) |
|
210 |
SET(_moo_what ${_moo_what2}) |
|
211 |
ELSE(NOT _moo_what2 EQUAL -1) |
|
212 |
IF(_moo_what EQUAL -1) |
|
213 |
MOO_ERROR("Invalid argument ${_moo_arg}") |
|
214 |
ENDIF(_moo_what EQUAL -1) |
|
215 |
LIST(GET _moo_vars ${_moo_what} _moo_v) |
|
216 |
LIST(APPEND ${_moo_v} "${_moo_arg}") |
|
217 |
ENDIF(NOT _moo_what2 EQUAL -1) |
|
218 |
ENDFOREACH(_moo_arg) |
|
219 |
||
220 |
LIST(LENGTH _moo_args _moo_nargs) |
|
221 |
MATH(EXPR _moo_nargs "${_moo_nargs} - 1") |
|
222 |
FOREACH(_moo_what RANGE ${_moo_nargs}) |
|
223 |
LIST(GET _moo_args ${_moo_what} _moo_a) |
|
224 |
LIST(GET _moo_vars ${_moo_what} _moo_v) |
|
225 |
#MOO_DEBUG("${_moo_what}. ${_moo_v}: ${${_moo_v}}") |
|
226 |
ENDFOREACH(_moo_what) |
|
227 |
ENDMACRO(MOO_COLLECT_ARGS) |
|
228 |
||
229 |
MACRO(__MOO_SET_SIMPLE_VAR var) |
|
230 |
SET(${var} ${ARGN}) |
|
231 |
ENDMACRO(__MOO_SET_SIMPLE_VAR) |
|
232 |
||
233 |
# _MOO_COLLECT_ARGS_IMPL(FOO foo setfoo BAR bar setbar ARGN ...) |
|
234 |
MACRO(_MOO_COLLECT_ARGS_IMPL) |
|
235 |
SET(_moo__cai_args) |
|
236 |
SET(_moo__cai_vars) |
|
237 |
SET(_moo__cai_macros) |
|
238 |
SET(_moo__cai_argn) |
|
239 |
||
240 |
SET(_moo__cai_what) |
|
241 |
||
242 |
FOREACH(_moo__cai_a ${ARGN}) |
|
243 |
IF("${_moo__cai_what}" STREQUAL "VAR") |
|
244 |
LIST(APPEND _moo__cai_vars ${_moo__cai_a}) |
|
245 |
SET(_moo__cai_what SETVAR) |
|
246 |
ELSEIF("${_moo__cai_what}" STREQUAL "SETVAR") |
|
247 |
LIST(APPEND _moo__cai_macros ${_moo__cai_a}) |
|
248 |
SET(_moo__cai_what) |
|
249 |
ELSEIF("${_moo__cai_what}" STREQUAL "ARGN") |
|
250 |
LIST(APPEND _moo__cai_argn ${_moo__cai_a}) |
|
251 |
ELSEIF("${_moo__cai_a}" STREQUAL "ARGN") |
|
252 |
SET(_moo__cai_what ARGN) |
|
253 |
ELSE("${_moo__cai_what}" STREQUAL "VAR") |
|
254 |
LIST(APPEND _moo__cai_args ${_moo__cai_a}) |
|
255 |
SET(_moo__cai_what VAR) |
|
256 |
ENDIF("${_moo__cai_what}" STREQUAL "VAR") |
|
257 |
ENDFOREACH(_moo__cai_a) |
|
258 |
||
259 |
# MOO_DEBUG("args: ${_moo__cai_args}") |
|
260 |
# MOO_DEBUG("vars: ${_moo__cai_vars}") |
|
261 |
# MOO_DEBUG("macros: ${_moo__cai_macros}") |
|
262 |
# MOO_DEBUG("argn: ${_moo__cai_argn}") |
|
263 |
||
264 |
SET(_moo__cai_what -1) |
|
265 |
FOREACH(_moo__cai_arg ${_moo__cai_argn}) |
|
266 |
LIST(FIND _moo__cai_args "${_moo__cai_arg}" _moo__cai_what2) |
|
267 |
IF(NOT _moo__cai_what2 EQUAL -1) |
|
268 |
SET(_moo__cai_what ${_moo__cai_what2}) |
|
269 |
ELSE(NOT _moo__cai_what2 EQUAL -1) |
|
270 |
IF(_moo__cai_what EQUAL -1) |
|
271 |
MOO_ERROR("Invalid argument ${_moo__cai_arg}") |
|
272 |
ENDIF(_moo__cai_what EQUAL -1) |
|
273 |
LIST(GET _moo__cai_vars ${_moo__cai_what} _moo__cai_v) |
|
274 |
LIST(GET _moo__cai_macros ${_moo__cai_what} _moo__cai_sv) |
|
275 |
IF("${_moo__cai_sv}" STREQUAL "__MOO_SET_SIMPLE_VAR") |
|
276 |
# MOO_DEBUG("${_moo__cai_v} = ${_moo__cai_arg}") |
|
277 |
__MOO_SET_SIMPLE_VAR(${_moo__cai_v} ${_moo__cai_arg}) |
|
278 |
ELSE("${_moo__cai_sv}" STREQUAL "__MOO_SET_SIMPLE_VAR") |
|
279 |
MOO_ERROR("Invalid argument ${_moo__cai_sv}") |
|
280 |
ENDIF("${_moo__cai_sv}" STREQUAL "__MOO_SET_SIMPLE_VAR") |
|
281 |
ENDIF(NOT _moo__cai_what2 EQUAL -1) |
|
282 |
ENDFOREACH(_moo__cai_arg) |
|
283 |
||
284 |
LIST(LENGTH _moo__cai_args _moo__cai_nargs) |
|
285 |
MATH(EXPR _moo__cai_nargs "${_moo__cai_nargs} - 1") |
|
286 |
FOREACH(_moo__cai_what RANGE ${_moo__cai_nargs}) |
|
287 |
LIST(GET _moo__cai_args ${_moo__cai_what} _moo__cai_a) |
|
288 |
LIST(GET _moo__cai_vars ${_moo__cai_what} _moo__cai_v) |
|
289 |
# MOO_DEBUG("${_moo__cai_what}. ${_moo__cai_v}: ${${_moo__cai_v}}") |
|
290 |
ENDFOREACH(_moo__cai_what) |
|
291 |
ENDMACRO(_MOO_COLLECT_ARGS_IMPL) |
|
292 |
||
293 |
# MOO_COLLECT_SIMPLE_ARGS(FOO foo BAR bar ARGN ...) |
|
294 |
MACRO(MOO_COLLECT_SIMPLE_ARGS) |
|
295 |
SET(_moo_csa_impl_argn) |
|
296 |
||
297 |
SET(_moo_csa_argn ${ARGN}) |
|
298 |
SET(_moo_csa_i 0) |
|
299 |
LIST(LENGTH _moo_csa_argn _moo_csa_nargs) |
|
300 |
WHILE(_moo_csa_i LESS _moo_csa_nargs) |
|
301 |
LIST(GET _moo_csa_argn ${_moo_csa_i} _moo_csa_a) |
|
302 |
IF("${_moo_csa_a}" STREQUAL "ARGN") |
|
303 |
BREAK() |
|
304 |
ENDIF("${_moo_csa_a}" STREQUAL "ARGN") |
|
305 |
MATH(EXPR _moo_csa_i "${_moo_csa_i} + 1") |
|
306 |
LIST(GET _moo_csa_argn ${_moo_csa_i} _moo_csa_v) |
|
307 |
LIST(APPEND _moo_csa_impl_argn "${_moo_csa_a}") |
|
308 |
LIST(APPEND _moo_csa_impl_argn "${_moo_csa_v}") |
|
309 |
LIST(APPEND _moo_csa_impl_argn __MOO_SET_SIMPLE_VAR) |
|
310 |
MATH(EXPR _moo_csa_i "${_moo_csa_i} + 1") |
|
311 |
ENDWHILE(_moo_csa_i LESS _moo_csa_nargs) |
|
312 |
||
313 |
WHILE(_moo_csa_i LESS _moo_csa_nargs) |
|
314 |
LIST(GET _moo_csa_argn ${_moo_csa_i} _moo_csa_a) |
|
315 |
LIST(APPEND _moo_csa_impl_argn "${_moo_csa_a}") |
|
316 |
MATH(EXPR _moo_csa_i "${_moo_csa_i} + 1") |
|
317 |
ENDWHILE(_moo_csa_i LESS _moo_csa_nargs) |
|
318 |
||
319 |
# MOO_DEBUG("MOO_COLLECT_SIMPLE_ARGS: ${_moo_csa_argn}") |
|
320 |
# MOO_DEBUG("MOO_COLLECT_SIMPLE_ARGS: ${_moo_csa_impl_argn}") |
|
321 |
||
322 |
_MOO_COLLECT_ARGS_IMPL(${_moo_csa_impl_argn}) |
|
323 |
ENDMACRO(MOO_COLLECT_SIMPLE_ARGS) |
|
324 |
||
325 |
########################################################################### |
|
326 |
# |
|
327 |
# MOO_OPTION |
|
328 |
# |
|
329 |
||
330 |
MACRO(MOO_OPTION variable dfltval helpstring) |
|
331 |
IF(DEFINED __MOO_OPTION_SET_${variable}) |
|
332 |
MOO_ERROR("Option ${variable} is already created") |
|
333 |
ENDIF(DEFINED __MOO_OPTION_SET_${variable}) |
|
334 |
SET(_moo_option_hidden) |
|
335 |
SET(_moo_option_header) |
|
336 |
SET(_moo_option_define) |
|
337 |
MOO_COLLECT_SIMPLE_ARGS(HIDDEN _moo_option_hidden HEADER _moo_option_header DEFINE _moo_option_define ARGN ${ARGN}) |
|
338 |
IF(NOT _moo_option_hidden) |
|
339 |
OPTION(${variable} "${helpstring}" "${dfltval}") |
|
340 |
ELSE(NOT _moo_option_hidden) |
|
341 |
SET(${variable} "${dfltval}" CACHE BOOL "${helpstring}") |
|
342 |
MARK_AS_ADVANCED(${variable}) |
|
343 |
ENDIF(NOT _moo_option_hidden) |
|
344 |
IF(_moo_option_header) |
|
345 |
# MOO_DEBUG(${variable}) |
|
346 |
MOO_DEFINE_H(${variable} "${helpstring}") |
|
347 |
ENDIF(_moo_option_header) |
|
348 |
IF(_moo_option_define AND ${variable}) |
|
349 |
ADD_DEFINITIONS(-D${variable}=1) |
|
350 |
ENDIF(_moo_option_define AND ${variable}) |
|
351 |
SET(__MOO_OPTION_SET_${variable} 1) |
|
352 |
# MOO_DEBUG(STATUS "Option ${variable}") |
|
353 |
ENDMACRO(MOO_OPTION) |
|
354 |
||
355 |
MACRO(MOO_CHECK_OPTION variable) |
|
356 |
IF(NOT DEFINED __MOO_OPTION_SET_${variable}) |
|
357 |
MOO_ERROR("Option ${variable} is not set") |
|
358 |
ENDIF(NOT DEFINED __MOO_OPTION_SET_${variable}) |
|
359 |
ENDMACRO(MOO_CHECK_OPTION) |
|
360 |
||
361 |
MOO_OPTION(MOO_DEV_MODE FALSE "Enable developer mode - bunch of checks, warnings, etc." DEFINE 1) |
|
362 |
||
363 |
FIND_PACKAGE(MooCompilers) |
|
364 |
FIND_PACKAGE(MooCmakeUtils) |
|
365 |
FIND_PACKAGE(MooI18n) |
Up to file-list cmake/modules/FindMooCmakeUtils.cmake:
1 |
MACRO(MOO_EXEC_OR_DIE command) |
|
2 |
EXECUTE_PROCESS(${ARGN} |
|
3 |
RESULT_VARIABLE __moo_command_result |
|
4 |
ERROR_VARIABLE __moo_command_error |
|
5 |
) |
|
6 |
IF(NOT __moo_command_result EQUAL 0) |
|
7 |
MESSAGE(FATAL_ERROR "Command ${command} failed: ${__moo_command_error}") |
|
8 |
ENDIF(NOT __moo_command_result EQUAL 0) |
|
9 |
ENDMACRO(MOO_EXEC_OR_DIE) |
|
10 |
||
11 |
MACRO(MOO_COPY_FILE file1 file2) |
|
12 |
MOO_EXEC_OR_DIE("copy ${file1} ${file2}" |
|
13 |
COMMAND ${CMAKE_COMMAND} -E copy ${file1} ${file2} |
|
14 |
) |
|
15 |
ENDMACRO(MOO_COPY_FILE) |
|
16 |
||
17 |
MACRO(MOO_COPY_IF_CHANGED file1 file2) |
|
18 |
SET(__moo_do_copy) |
|
19 |
IF(NOT EXISTS ${file2}) |
|
20 |
SET(__moo_do_copy 1) |
|
21 |
ELSE(NOT EXISTS ${file2}) |
|
22 |
FILE(READ ${file1} __moo_contents1) |
|
23 |
FILE(READ ${file2} __moo_contents2) |
|
24 |
IF(NOT "${__moo_contents1}" STREQUAL "${__moo_contents2}") |
|
25 |
SET(__moo_do_copy 1) |
|
26 |
ENDIF(NOT "${__moo_contents1}" STREQUAL "${__moo_contents2}") |
|
27 |
ENDIF(NOT EXISTS ${file2}) |
|
28 |
IF(__moo_do_copy) |
|
29 |
MOO_COPY_FILE(${file1} ${file2}) |
|
30 |
ENDIF(__moo_do_copy) |
|
31 |
|
|
1 |
MACRO(MOO_EXEC_OR_DIE command) |
|
2 |
EXECUTE_PROCESS(${ARGN} |
|
3 |
RESULT_VARIABLE __moo_command_result |
|
4 |
ERROR_VARIABLE __moo_command_error |
|
5 |
) |
|
6 |
IF(NOT __moo_command_result EQUAL 0) |
|
7 |
MESSAGE(FATAL_ERROR "Command ${command} failed: ${__moo_command_error}") |
|
8 |
ENDIF(NOT __moo_command_result EQUAL 0) |
|
9 |
ENDMACRO(MOO_EXEC_OR_DIE) |
|
10 |
||
11 |
MACRO(MOO_COPY_FILE file1 file2) |
|
12 |
MOO_EXEC_OR_DIE("copy ${file1} ${file2}" |
|
13 |
COMMAND ${CMAKE_COMMAND} -E copy ${file1} ${file2} |
|
14 |
) |
|
15 |
ENDMACRO(MOO_COPY_FILE) |
|
16 |
||
17 |
MACRO(MOO_COPY_IF_CHANGED file1 file2) |
|
18 |
SET(__moo_do_copy) |
|
19 |
IF(NOT EXISTS ${file2}) |
|
20 |
SET(__moo_do_copy 1) |
|
21 |
ELSE(NOT EXISTS ${file2}) |
|
22 |
FILE(READ ${file1} __moo_contents1) |
|
23 |
FILE(READ ${file2} __moo_contents2) |
|
24 |
IF(NOT "${__moo_contents1}" STREQUAL "${__moo_contents2}") |
|
25 |
SET(__moo_do_copy 1) |
|
26 |
ENDIF(NOT "${__moo_contents1}" STREQUAL "${__moo_contents2}") |
|
27 |
ENDIF(NOT EXISTS ${file2}) |
|
28 |
IF(__moo_do_copy) |
|
29 |
MOO_COPY_FILE(${file1} ${file2}) |
|
30 |
ENDIF(__moo_do_copy) |
|
31 |
ENDMACRO(MOO_COPY_IF_CHANGED) |
Up to file-list cmake/modules/FindMooCompilers.cmake:
1 |
MACRO(_MOO_JOIN_STRING_LIST outvar sep) |
|
2 |
SET(_moo__jsl_result) |
|
3 |
SET(_moo__jsl_first TRUE) |
|
4 |
FOREACH(_moo__jsl_arg ${ARGN}) |
|
5 |
IF(_moo__jsl_first) |
|
6 |
SET(_moo__jsl_result "${_moo__jsl_arg}") |
|
7 |
SET(_moo__jsl_first FALSE) |
|
8 |
ELSE(_moo__jsl_first) |
|
9 |
SET(_moo__jsl_result "${_moo__jsl_result}${sep}${_moo__jsl_arg}") |
|
10 |
ENDIF(_moo__jsl_first) |
|
11 |
ENDFOREACH(_moo__jsl_arg) |
|
12 |
SET(${outvar} "${_moo__jsl_result}") |
|
13 |
ENDMACRO(_MOO_JOIN_STRING_LIST) |
|
14 |
||
15 |
MACRO(_MOO_CHECK_COMPILER_LANG lang var) |
|
16 |
STRING(TOUPPER ${lang} _moo__ccl_lang) |
|
17 |
IF("${_moo__ccl_lang}" STREQUAL "ALL") |
|
18 |
SET(_moo__ccl_langs C CXX) |
|
19 |
ELSEIF("${_moo__ccl_lang}" STREQUAL "C" OR "${_moo__ccl_lang}" STREQUAL "CXX") |
|
20 |
SET(_moo__ccl_langs ${_moo__ccl_lang}) |
|
21 |
ELSE("${_moo__ccl_lang}" STREQUAL "ALL") |
|
22 |
MOO_ERROR("Invalid lang '${lang}'") |
|
23 |
ENDIF("${_moo__ccl_lang}" STREQUAL "ALL") |
|
24 |
SET(${var} ${_moo__ccl_langs}) |
|
25 |
ENDMACRO(_MOO_CHECK_COMPILER_LANG) |
|
26 |
||
27 |
MACRO(_MOO_CHECK_BUILD_TYPE build prefix var) |
|
28 |
STRING(TOUPPER ${build} _moo__cbt_build) |
|
29 |
IF("${_moo__cbt_build}" STREQUAL "ALL") |
|
30 |
SET(_moo__cbt_vars ${prefix}) |
|
31 |
ELSEIF("${_moo__cbt_build}" STREQUAL "RELEASE") |
|
32 |
SET(_moo__cbt_vars ${prefix}_RELEASE ${prefix}_RELWITHDEBINFO ${prefix}_MINSIZEREL) |
|
33 |
ELSEIF("${_moo__cbt_build}" STREQUAL "RELEASEONLY") |
|
34 |
SET(_moo__cbt_vars ${prefix}_RELEASE) |
|
35 |
ELSEIF("${_moo__cbt_build}" STREQUAL "DEBUG" OR "${_moo__cbt_build}" STREQUAL "RELWITHDEBINFO" OR "${_moo__cbt_build}" STREQUAL "MINSIZEREL") |
|
36 |
SET(_moo__cbt_vars ${prefix}_${_moo__cbt_build}) |
|
37 |
ELSE("${_moo__cbt_build}" STREQUAL "ALL") |
|
38 |
MOO_ERROR("Invalid build type '${build}'") |
|
39 |
ENDIF("${_moo__cbt_build}" STREQUAL "ALL") |
|
40 |
SET(${var} ${_moo__cbt_vars}) |
|
41 |
ENDMACRO(_MOO_CHECK_BUILD_TYPE) |
|
42 |
||
43 |
MACRO(_MOO_GET_COMPILER_CONFIG_ARGS var_lang var_build_prefix var_build_vars var_args) |
|
44 |
SET(_moo__gcca_langs C CXX) |
|
45 |
SET(_moo__gcca_args) |
|
46 |
SET(_moo__gcca_do TRUE) |
|
47 |
_MOO_CHECK_BUILD_TYPE("ALL" ${var_build_prefix} _moo__gcca_bvars) |
|
48 |
||
49 |
FOREACH(_moo__gcca_arg ${ARGN}) |
|
50 |
IF("${_moo__gcca_arg}" STREQUAL "GCC" OR "${_moo__gcca_arg}" STREQUAL "GNUCC") |
|
51 |
IF(NOT CMAKE_COMPILER_IS_GNUCC) |
|
52 |
SET(_moo__gcca_do FALSE) |
|
53 |
ENDIF(NOT CMAKE_COMPILER_IS_GNUCC) |
|
54 |
ELSEIF("${_moo__gcca_arg}" STREQUAL "MSVC") |
|
55 |
IF(NOT MSVC) |
|
56 |
SET(_moo__gcca_do FALSE) |
|
57 |
ENDIF(NOT MSVC) |
|
58 |
ELSEIF("${_moo__gcca_arg}" STREQUAL "DEBUG" OR "${_moo__gcca_arg}" STREQUAL "RELEASE" OR |
|
59 |
"${_moo__gcca_arg}" STREQUAL "RELEASEONLY" OR "${_moo__gcca_arg}" STREQUAL "RELWITHDEBINFO" OR |
|
60 |
"${_moo__gcca_arg}" STREQUAL "MINSIZEREL") |
|
61 |
_MOO_CHECK_BUILD_TYPE(${_moo__gcca_arg} ${var_build_prefix} _moo__gcca_bvars) |
|
62 |
ELSEIF("${_moo__gcca_arg}" STREQUAL "C" OR "${_moo__gcca_arg}" STREQUAL "CXX") |
|
63 |
SET(_moo__gcca_langs ${_moo__gcca_arg}) |
|
64 |
ELSEIF("${_moo__gcca_arg}" STREQUAL "WIN32" OR "${_moo__gcca_arg}" STREQUAL "UNIX") |
|
65 |
IF("${_moo__gcca_arg}" STREQUAL "WIN32" AND NOT WIN32) |
|
66 |
SET(_moo__gcca_do FALSE) |
|
67 |
ELSEIF("${_moo__gcca_arg}" STREQUAL "UNIX" AND WIN32) |
|
68 |
SET(_moo__gcca_do FALSE) |
|
69 |
ENDIF("${_moo__gcca_arg}" STREQUAL "WIN32" AND NOT WIN32) |
|
70 |
ELSE("${_moo__gcca_arg}" STREQUAL "GCC" OR "${_moo__gcca_arg}" STREQUAL "GNUCC") |
|
71 |
LIST(APPEND _moo__gcca_args ${_moo__gcca_arg}) |
|
72 |
ENDIF("${_moo__gcca_arg}" STREQUAL "GCC" OR "${_moo__gcca_arg}" STREQUAL "GNUCC") |
|
73 |
ENDFOREACH(_moo__gcca_arg) |
|
74 |
||
75 |
#MESSAGE("_MOO_GET_COMPILER_CONFIG_ARGS(var_lang=${var_lang}, var_build_prefix=${var_build_prefix}, var_build_vars=${var_build_vars}, var_args=${var_args}, args=${ARGN})") |
|
76 |
IF(_moo__gcca_do) |
|
77 |
SET(${var_lang} ${_moo__gcca_langs}) |
|
78 |
SET(${var_build_vars} ${_moo__gcca_bvars}) |
|
79 |
SET(${var_args} ${_moo__gcca_args}) |
|
80 |
#MESSAGE(" var_lang=${_moo__gcca_langs}, var_build_vars=${_moo__gcca_bsfxs}, var_args=${_moo__gcca_args}") |
|
81 |
ELSE(_moo__gcca_do) |
|
82 |
SET(${var_lang}) |
|
83 |
SET(${var_build_vars}) |
|
84 |
SET(${var_args}) |
|
85 |
#MESSAGE(" DISABLED") |
|
86 |
ENDIF(_moo__gcca_do) |
|
87 |
ENDMACRO(_MOO_GET_COMPILER_CONFIG_ARGS) |
|
88 |
||
89 |
MACRO(MOO_ADD_COMPILER_FLAGS) |
|
90 |
_MOO_GET_COMPILER_CONFIG_ARGS(_moo_acf_langs "FLAGS" _moo_acf_bvars _moo_acf_args ${ARGN}) |
|
91 |
IF(_moo_acf_args) |
|
92 |
_MOO_JOIN_STRING_LIST(_moo_acf_flags " " ${_moo_acf_args}) |
|
93 |
FOREACH(_moo_acf_lang ${_moo_acf_langs}) |
|
94 |
FOREACH(_moo_acf_bvar ${_moo_acf_bvars}) |
|
95 |
SET(_moo__acf_var CMAKE_${_moo_acf_lang}_${_moo_acf_bvar}) |
|
96 |
SET(${_moo__acf_var} "${${_moo__acf_var}} ${_moo_acf_flags}") |
|
97 |
MOO_DEBUG(STATUS "${_moo__acf_var} += ${_moo_acf_flags}") |
|
98 |
ENDFOREACH(_moo_acf_bvar) |
|
99 |
ENDFOREACH(_moo_acf_lang) |
|
100 |
ENDIF(_moo_acf_args) |
|
101 |
ENDMACRO(MOO_ADD_COMPILER_FLAGS) |
|
102 |
||
103 |
||
104 |
INCLUDE(CheckCCompilerFlag) |
|
105 |
INCLUDE(CheckCXXCompilerFlag) |
|
106 |
||
107 |
MACRO(MOO_COMPILER_FLAG_VAR_NAME flag lang var) |
|
108 |
STRING(REGEX REPLACE "[-=]" "_" _moo_cfvn_name MOO_${lang}FLAG${flag}) |
|
109 |
STRING(REPLACE "+" "x" _moo_cfvn_name ${_moo_cfvn_name}) |
|
110 |
SET(${var} ${_moo_cfvn_name}) |
|
111 |
ENDMACRO(MOO_COMPILER_FLAG_VAR_NAME) |
|
112 |
||
113 |
MACRO(MOO_CHECK_COMPILER_FLAGS) |
|
114 |
_MOO_GET_COMPILER_CONFIG_ARGS(_moo_ccf_langs "FLAGS" _moo_ccf_bvars _moo_ccf_args ${ARGN}) |
|
115 |
FOREACH(_moo_ccf_lang ${_moo_ccf_langs}) |
|
116 |
SET(_moo_ccf_good_flags) |
|
117 |
FOREACH(_moo_ccf_flag ${_moo_ccf_args}) |
|
118 |
MOO_COMPILER_FLAG_VAR_NAME(${_moo_ccf_flag} ${_moo_ccf_lang} _moo_ccf_flag_name) |
|
119 |
||
120 |
IF("${_moo_ccf_lang}" STREQUAL "C") |
|
121 |
CHECK_C_COMPILER_FLAG("${_moo_ccf_flag}" ${_moo_ccf_flag_name}) |
|
122 |
ELSEIF("${_moo_ccf_lang}" STREQUAL "CXX") |
|
123 |
CHECK_CXX_COMPILER_FLAG("${_moo_ccf_flag}" ${_moo_ccf_flag_name}) |
|
124 |
ELSE("${_moo_ccf_lang}" STREQUAL "C") |
|
125 |
MOO_ERROR("Unknown lang '${lang}'") |
|
126 |
ENDIF("${_moo_ccf_lang}" STREQUAL "C") |
|
127 |
||
128 |
IF(${_moo_ccf_flag_name}) |
|
129 |
LIST(APPEND _moo_ccf_good_flags "${_moo_ccf_flag}") |
|
130 |
ENDIF(${_moo_ccf_flag_name}) |
|
131 |
ENDFOREACH(_moo_ccf_flag) |
|
132 |
IF(_moo_ccf_good_flags) |
|
133 |
_MOO_JOIN_STRING_LIST(_moo_ccf_good_flags " " ${_moo_ccf_good_flags}) |
|
134 |
FOREACH(_moo_ccf_bvar ${_moo_ccf_bvars}) |
|
135 |
SET(_moo_ccf_flags_var CMAKE_${_moo_ccf_lang}_${_moo_ccf_bvar}) |
|
136 |
SET(${_moo_ccf_flags_var} "${${_moo_ccf_flags_var}} ${_moo_ccf_good_flags}") |
|
137 |
MOO_DEBUG(STATUS "${_moo_ccf_flags_var} += ${_moo_ccf_good_flags}") |
|
138 |
ENDFOREACH(_moo_ccf_bvar) |
|
139 |
ENDIF(_moo_ccf_good_flags) |
|
140 |
ENDFOREACH(_moo_ccf_lang) |
|
141 |
ENDMACRO(MOO_CHECK_COMPILER_FLAGS) |
|
142 |
||
143 |
||
144 |
MACRO(MOO_ADD_COMPILE_DEFINITIONS) |
|
145 |
_MOO_GET_COMPILER_CONFIG_ARGS(_moo_acd_langs "COMPILE_DEFINITIONS" _moo_acd_bvars _moo_acd_args ${ARGN}) |
|
146 |
SET(_moo_acd_defs) |
|
147 |
FOREACH(_moo_acd_a ${_moo_acd_args}) |
|
148 |
STRING(REGEX REPLACE "^(-D|/D)" "" _moo_acd_a "${_moo_acd_a}") |
|
149 |
LIST(APPEND _moo_acd_defs "${_moo_acd_a}") |
|
150 |
ENDFOREACH(_moo_acd_a) |
|
151 |
#MESSAGE("MOO_ADD_COMPILE_DEFINITIONS(${ARGN}) => ${_moo_acd_langs}, ${_moo_acd_bvars}, ${_moo_acd_args}") |
|
152 |
FOREACH(_moo_acd_bvar ${_moo_acd_bvars}) |
|
153 |
SET_PROPERTY(DIRECTORY APPEND PROPERTY ${_moo_acd_bvar} ${_moo_acd_defs}) |
|
154 |
_MOO_JOIN_STRING_LIST(_moo_acd_defs_string " " ${_moo_acd_defs}) |
|
155 |
MOO_DEBUG(STATUS "${_moo_acd_bvar} += ${_moo_acd_defs_string}") |
|
156 |
ENDFOREACH(_moo_acd_bvar) |
|
157 |
ENDMACRO(MOO_ADD_COMPILE_DEFINITIONS) |
|
158 |
||
159 |
||
160 |
########################################################################### |
|
161 |
# |
|
162 |
# DEBUG |
|
163 |
# |
|
164 |
||
165 |
MOO_ADD_COMPILE_DEFINITIONS(DEBUG -DMOO_DEBUG -DDEBUG -D_DEBUG) |
|
166 |
||
167 |
||
168 |
########################################################################### |
|
169 |
# |
|
170 |
# GCC |
|
171 |
# |
|
172 |
||
173 |
# Set this first because it may affect checks below |
|
174 |
IF(MOO_DEV_MODE) |
|
175 |
MOO_ADD_COMPILER_FLAGS(GCC -Werror) |
|
176 |
ENDIF(MOO_DEV_MODE) |
|
177 |
||
178 |
MOO_ADD_COMPILER_FLAGS(GCC -Wall -Wextra) |
|
179 |
MOO_CHECK_COMPILER_FLAGS(GCC -fexceptions -fno-strict-aliasing -fno-strict-overflow) |
|
180 |
MOO_CHECK_COMPILER_FLAGS(GCC -Wno-missing-field-initializers -Wno-overlength-strings -Wno-missing-declarations) |
|
181 |
||
182 |
MOO_CHECK_COMPILER_FLAGS(GCC DEBUG -ftrapv) |
|
183 |
||
184 |
MOO_ADD_COMPILER_FLAGS(GCC CXX -std=c++98 -pedantic) |
|
185 |
MOO_CHECK_COMPILER_FLAGS(GCC CXX -fno-rtti) |
|
186 |
MOO_CHECK_COMPILER_FLAGS(GCC CXX RELEASE -fno-enforce-eh-specs) |
|
187 |
||
188 |
IF(MOO_DEV_MODE) |
|
189 |
MOO_CHECK_COMPILER_FLAGS(GCC |
|
190 |
-Wcast-align -Wlogical-op |
|
191 |
-Wmissing-format-attribute -Wnested-externs -Wlong-long -Wvla |
|
192 |
-Wuninitialized -Winit-self) |
|
193 |
MOO_CHECK_COMPILER_FLAGS(GCC CXX -fno-nonansi-builtins -fno-gnu-keywords) |
|
194 |
MOO_CHECK_COMPILER_FLAGS(GCC CXX |
|
195 |
-Wctor-dtor-privacy -Wnon-virtual-dtor -Wabi |
|
196 |
-Wstrict-null-sentinel -Woverloaded-virtual -Wsign-promo |
|
197 |
) |
|
198 |
ENDIF(MOO_DEV_MODE) |
|
199 |
||
200 |
||
201 |
############################################################################### |
|
202 |
# |
|
203 |
# Windows |
|
204 |
# |
|
205 |
||
206 |
MOO_ADD_COMPILE_DEFINITIONS(WIN32 -D__WIN32__ -DWIN32_LEAN_AND_MEAN -DUNICODE -D_UNICODE -DSTRICT) |
|
207 |
||
208 |
MOO_ADD_COMPILER_FLAGS(MSVC /W4 /GS) |
|
209 |
MOO_ADD_COMPILER_FLAGS(MSVC CXX /Zc:wchar_t,forScope /GR /EHc /EHsc) |
|
210 |
||
211 |
MOO_ADD_COMPILER_FLAGS(MSVC |
|
212 |
/wd4221 /wd4204 /wd4996 /wd4244 /wd4055 /wd4127 /wd4100 |
|
213 |
/wd4054 /wd4152 /wd4706 /wd4125 /wd4389 /wd4132 /wd4018 |
|
214 |
) |
|
215 |
||
216 |
IF(MOO_DEV_MODE) |
|
217 |
MOO_ADD_COMPILER_FLAGS(MSVC /WX) |
|
218 |
MOO_ADD_COMPILER_FLAGS(MSVC DEBUG /RTCsu /RTCc) |
|
219 |
ENDIF(MOO_DEV_MODE) |
|
220 |
||
221 |
||
222 |
############################################################################### |
|
223 |
# |
|
224 |
# Mac OS X |
|
225 |
# |
|
226 |
||
227 |
IF(APPLE) |
|
228 |
MOO_OPTION(MOO_ENABLE_UNIVERSAL FALSE "Build a universal binary on Mac OS X" HIDDEN !${MOO_OS_DARWIN}) |
|
229 |
ENDIF(APPLE) |
|
230 |
||
231 |
IF(APPLE AND MOO_ENABLE_UNIVERSAL) |
|
232 |
SET(CMAKE_OSX_ARCHITECTURES "ppc;i386") |
|
233 |
SET(CMAKE_OSX_SYSROOT "/Developer/SDKs/MacOSX10.4u.sdk") |
|
234 |
ENDIF(APPLE AND MOO_ENABLE_UNIVERSAL) |
|
235 |
||
236 |
||
237 |
############################################################################### |
|
238 |
# |
|
239 |
# Precompiled headers |
|
240 |
# |
|
241 |
||
242 |
MOO_OPTION(MOO_ENABLE_PCH FALSE "Enable precompiled headers. May be broken.") |
|
243 |
||
244 |
MACRO(__MOO_PCH_GNUCXX_GET_COMPILE_FLAGS outvar target) |
|
245 |
||
246 |
STRING(TOUPPER "CMAKE_CXX_FLAGS_${CMAKE_BUILD_TYPE}" _moo_varname) |
|
247 |
LIST(APPEND ${outvar} ${${_moo_varname}}) |
|
248 |
||
249 |
GET_TARGET_PROPERTY(target_type ${target} TYPE) |
|
250 |
IF("${target_type}" STREQUAL "SHARED_LIBRARY") |
|
251 |
LIST(APPEND ${outvar} -fPIC) |
|
252 |
ENDIF("${target_type}" STREQUAL "SHARED_LIBRARY") |
|
253 |
||
254 |
GET_DIRECTORY_PROPERTY(includes INCLUDE_DIRECTORIES) |
|
255 |
FOREACH(item ${includes}) |
|
256 |
LIST(APPEND ${outvar} "-I${item}") |
|
257 |
ENDFOREACH(item) |
|
258 |
||
259 |
STRING(TOUPPER "COMPILE_DEFINITIONS_${CMAKE_BUILD_TYPE}" _moo_varname) |
|
260 |
GET_DIRECTORY_PROPERTY(flags ${_moo_varname}) |
|
261 |
FOREACH(item ${flags}) |
|
262 |
LIST(APPEND ${outvar} "-D${item}") |
|
263 |
ENDFOREACH(item) |
|
264 |
GET_DIRECTORY_PROPERTY(flags COMPILE_DEFINITIONS) |
|
265 |
FOREACH(item ${flags}) |
|
266 |
LIST(APPEND ${outvar} "-D${item}") |
|
267 |
ENDFOREACH(item) |
|
268 |
||
269 |
GET_DIRECTORY_PROPERTY(flags DEFINITIONS) |
|
270 |
LIST(APPEND ${outvar} ${flags}) |
|
271 |
LIST(APPEND ${outvar} ${CMAKE_CXX_FLAGS} ) |
|
272 |
||
273 |
SEPARATE_ARGUMENTS(${outvar}) |
|
274 |
ENDMACRO(__MOO_PCH_GNUCXX_GET_COMPILE_FLAGS) |
|
275 |
||
276 |
MACRO(__MOO_PCH_GNUCXX_GET_COMMAND outvar target input output) |
|
277 |
__MOO_PCH_GNUCXX_GET_COMPILE_FLAGS(_moo_compile_flags target) |
|
278 |
SET(_moo_pch_compile_command |
|
279 |
${CMAKE_CXX_COMPILER} ${CMAKE_CXX_COMPILER_ARG1} ${_moo_compile_flags} -x c++-header -o ${output} ${input} |
|
280 |
) |
|
281 |
ENDMACRO(__MOO_PCH_GNUCXX_GET_COMMAND) |
|
282 |
||
283 |
MACRO(__MOO_PRECOMPILE_HEADER_GNUCXX header target) |
|
284 |
SET(_moo_pch_output_dir ${CMAKE_CURRENT_BINARY_DIR}/${header}.gch) |
|
285 |
SET(_moo_pch_output ${_moo_pch_output_dir}/c++) |
|
286 |
SET(_moo_pch_input_s ${CMAKE_CURRENT_SOURCE_DIR}/${header}) |
|
287 |
SET(_moo_pch_input_b ${CMAKE_CURRENT_BINARY_DIR}/${header}) |
|
288 |
SET(_moo_pch_lib ${target}_pchlib) |
|
289 |
||
290 |
SET_SOURCE_FILES_PROPERTIES(${_moo_pch_input_b} PROPERTIES GENERATED 1) |
|
291 |
||
292 |
MOO_SUBDIR_NAME(_moo_subdir) |
|
293 |
||
294 |
ADD_CUSTOM_COMMAND(OUTPUT ${_moo_pch_input_b} |
|
295 |
COMMAND ${CMAKE_COMMAND} -E copy ${_moo_pch_input_s} ${_moo_pch_input_b} |
|
296 |
DEPENDS ${_moo_pch_input_s} |
|
297 |
COMMENT "Generating ${_moo_subdir}/${header}" |
|
298 |
) |
|
299 |
||
300 |
ADD_CUSTOM_TARGET(${target}_pch DEPENDS ${_moo_pch_output}) |
|
301 |
ADD_DEPENDENCIES(${target} ${target}_pch) |
|
302 |
||
303 |
__MOO_PCH_GNUCXX_GET_COMMAND(_moo_pch_compile_command ${target} ${_moo_pch_input_b} ${_moo_pch_output}) |
|
304 |
ADD_CUSTOM_COMMAND(OUTPUT ${_moo_pch_output} |
|
305 |
COMMAND ${CMAKE_COMMAND} -E make_directory ${_moo_pch_output_dir} |
|
306 |
COMMAND ${_moo_pch_compile_command} |
|
307 |
DEPENDS ${_moo_pch_input_s} ${_moo_pch_input_b} # ${_moo_pch_lib} |
|
308 |
COMMENT "Generating ${_moo_subdir}/${header}.gch/c++" |
|
309 |
) |
|
310 |
||
311 |
GET_TARGET_PROPERTY(_moo_old_flags ${target} COMPILE_FLAGS) |
|
312 |
IF(NOT _moo_old_flags) |
|
313 |
SET(_moo_old_flags) |
|
314 |
ENDIF(NOT _moo_old_flags) |
|
315 |
SET_TARGET_PROPERTIES(${target} PROPERTIES COMPILE_FLAGS |
|
316 |
"-include ${_moo_pch_input_b} -Winvalid-pch ${_moo_old_flags}" |
|
317 |
) |
|
318 |
ENDMACRO(__MOO_PRECOMPILE_HEADER_GNUCXX) |
|
319 |
||
320 |
MACRO(MOO_PRECOMPILE_HEADER header target) |
|
321 |
IF(MOO_ENABLE_PCH) |
|
322 |
IF(CMAKE_COMPILER_IS_GNUCXX) |
|
323 |
__MOO_PRECOMPILE_HEADER_GNUCXX(${header} ${target}) |
|
324 |
ELSE(CMAKE_COMPILER_IS_GNUCXX) |
|
325 |
MESSAGE(STATUS "*** IMPLEMENT ME: precompiled headers for this compiler") |
|
326 |
ENDIF(CMAKE_COMPILER_IS_GNUCXX) |
|
327 |
ENDIF(MOO_ENABLE_PCH) |
|
328 |
ENDMACRO(MOO_PRECOMPILE_HEADER) |
|
1 |
MACRO(_MOO_JOIN_STRING_LIST outvar sep) |
|
2 |
SET(_moo__jsl_result) |
|
3 |
SET(_moo__jsl_first TRUE) |
|
4 |
FOREACH(_moo__jsl_arg ${ARGN}) |
|
5 |
IF(_moo__jsl_first) |
|
6 |
SET(_moo__jsl_result "${_moo__jsl_arg}") |
|
7 |
SET(_moo__jsl_first FALSE) |
|
8 |
ELSE(_moo__jsl_first) |
|
9 |
SET(_moo__jsl_result "${_moo__jsl_result}${sep}${_moo__jsl_arg}") |
|
10 |
ENDIF(_moo__jsl_first) |
|
11 |
ENDFOREACH(_moo__jsl_arg) |
|
12 |
SET(${outvar} "${_moo__jsl_result}") |
|
13 |
ENDMACRO(_MOO_JOIN_STRING_LIST) |
|
14 |
||
15 |
MACRO(_MOO_CHECK_COMPILER_LANG lang var) |
|
16 |
STRING(TOUPPER ${lang} _moo__ccl_lang) |
|
17 |
IF("${_moo__ccl_lang}" STREQUAL "ALL") |
|
18 |
SET(_moo__ccl_langs C CXX) |
|
19 |
ELSEIF("${_moo__ccl_lang}" STREQUAL "C" OR "${_moo__ccl_lang}" STREQUAL "CXX") |
|
20 |
SET(_moo__ccl_langs ${_moo__ccl_lang}) |
|
21 |
ELSE("${_moo__ccl_lang}" STREQUAL "ALL") |
|
22 |
MOO_ERROR("Invalid lang '${lang}'") |
|
23 |
ENDIF("${_moo__ccl_lang}" STREQUAL "ALL") |
|
24 |
SET(${var} ${_moo__ccl_langs}) |
|
25 |
ENDMACRO(_MOO_CHECK_COMPILER_LANG) |
|
26 |
||
27 |
MACRO(_MOO_CHECK_BUILD_TYPE build prefix var) |
|
28 |
STRING(TOUPPER ${build} _moo__cbt_build) |
|
29 |
IF("${_moo__cbt_build}" STREQUAL "ALL") |
|
30 |
SET(_moo__cbt_vars ${prefix}) |
|
31 |
ELSEIF("${_moo__cbt_build}" STREQUAL "RELEASE") |
|
32 |
SET(_moo__cbt_vars ${prefix}_RELEASE ${prefix}_RELWITHDEBINFO ${prefix}_MINSIZEREL) |
|
33 |
ELSEIF("${_moo__cbt_build}" STREQUAL "RELEASEONLY") |
|
34 |
SET(_moo__cbt_vars ${prefix}_RELEASE) |
|
35 |
ELSEIF("${_moo__cbt_build}" STREQUAL "DEBUG" OR "${_moo__cbt_build}" STREQUAL "RELWITHDEBINFO" OR "${_moo__cbt_build}" STREQUAL "MINSIZEREL") |
|
36 |
SET(_moo__cbt_vars ${prefix}_${_moo__cbt_build}) |
|
37 |
ELSE("${_moo__cbt_build}" STREQUAL "ALL") |
|
38 |
MOO_ERROR("Invalid build type '${build}'") |
|
39 |
ENDIF("${_moo__cbt_build}" STREQUAL "ALL") |
|
40 |
SET(${var} ${_moo__cbt_vars}) |
|
41 |
ENDMACRO(_MOO_CHECK_BUILD_TYPE) |
|
42 |
||
43 |
MACRO(_MOO_GET_COMPILER_CONFIG_ARGS var_lang var_build_prefix var_build_vars var_args) |
|
44 |
SET(_moo__gcca_langs C CXX) |
|
45 |
SET(_moo__gcca_args) |
|
46 |
SET(_moo__gcca_do TRUE) |
|
47 |
_MOO_CHECK_BUILD_TYPE("ALL" ${var_build_prefix} _moo__gcca_bvars) |
|
48 |
||
49 |
FOREACH(_moo__gcca_arg ${ARGN}) |
|
50 |
IF("${_moo__gcca_arg}" STREQUAL "GCC" OR "${_moo__gcca_arg}" STREQUAL "GNUCC") |
|
51 |
IF(NOT CMAKE_COMPILER_IS_GNUCC) |
|
52 |
SET(_moo__gcca_do FALSE) |
|
53 |
ENDIF(NOT CMAKE_COMPILER_IS_GNUCC) |
|
54 |
ELSEIF("${_moo__gcca_arg}" STREQUAL "MSVC") |
|
55 |
IF(NOT MSVC) |
|
56 |
SET(_moo__gcca_do FALSE) |
|
57 |
ENDIF(NOT MSVC) |
|
58 |
ELSEIF("${_moo__gcca_arg}" STREQUAL "DEBUG" OR "${_moo__gcca_arg}" STREQUAL "RELEASE" OR |
|
59 |
"${_moo__gcca_arg}" STREQUAL "RELEASEONLY" OR "${_moo__gcca_arg}" STREQUAL "RELWITHDEBINFO" OR |
|
60 |
"${_moo__gcca_arg}" STREQUAL "MINSIZEREL") |
|
61 |
_MOO_CHECK_BUILD_TYPE(${_moo__gcca_arg} ${var_build_prefix} _moo__gcca_bvars) |
|
62 |
ELSEIF("${_moo__gcca_arg}" STREQUAL "C" OR "${_moo__gcca_arg}" STREQUAL "CXX") |
|
63 |
SET(_moo__gcca_langs ${_moo__gcca_arg}) |
|
64 |
ELSEIF("${_moo__gcca_arg}" STREQUAL "WIN32" OR "${_moo__gcca_arg}" STREQUAL "UNIX") |
|
65 |
IF("${_moo__gcca_arg}" STREQUAL "WIN32" AND NOT WIN32) |
|
66 |
SET(_moo__gcca_do FALSE) |
|
67 |
ELSEIF("${_moo__gcca_arg}" STREQUAL "UNIX" AND WIN32) |
|
68 |
SET(_moo__gcca_do FALSE) |
|
69 |
ENDIF("${_moo__gcca_arg}" STREQUAL "WIN32" AND NOT WIN32) |
|
70 |
ELSE("${_moo__gcca_arg}" STREQUAL "GCC" OR "${_moo__gcca_arg}" STREQUAL "GNUCC") |
|
71 |
LIST(APPEND _moo__gcca_args ${_moo__gcca_arg}) |
|
72 |
ENDIF("${_moo__gcca_arg}" STREQUAL "GCC" OR "${_moo__gcca_arg}" STREQUAL "GNUCC") |
|
73 |
ENDFOREACH(_moo__gcca_arg) |
|
74 |
||
75 |
#MESSAGE("_MOO_GET_COMPILER_CONFIG_ARGS(var_lang=${var_lang}, var_build_prefix=${var_build_prefix}, var_build_vars=${var_build_vars}, var_args=${var_args}, args=${ARGN})") |
|
76 |
IF(_moo__gcca_do) |
|
77 |
SET(${var_lang} ${_moo__gcca_langs}) |
|
78 |
SET(${var_build_vars} ${_moo__gcca_bvars}) |
|
79 |
SET(${var_args} ${_moo__gcca_args}) |
|
80 |
#MESSAGE(" var_lang=${_moo__gcca_langs}, var_build_vars=${_moo__gcca_bsfxs}, var_args=${_moo__gcca_args}") |
|
81 |
ELSE(_moo__gcca_do) |
|
82 |
SET(${var_lang}) |
|
83 |
SET(${var_build_vars}) |
|
84 |
SET(${var_args}) |
|
85 |
#MESSAGE(" DISABLED") |
|
86 |
ENDIF(_moo__gcca_do) |
|
87 |
ENDMACRO(_MOO_GET_COMPILER_CONFIG_ARGS) |
|
88 |
||
89 |
MACRO(MOO_ADD_COMPILER_FLAGS) |
|
90 |
_MOO_GET_COMPILER_CONFIG_ARGS(_moo_acf_langs "FLAGS" _moo_acf_bvars _moo_acf_args ${ARGN}) |
|
91 |
IF(_moo_acf_args) |
|
92 |
_MOO_JOIN_STRING_LIST(_moo_acf_flags " " ${_moo_acf_args}) |
|
93 |
FOREACH(_moo_acf_lang ${_moo_acf_langs}) |
|
94 |
FOREACH(_moo_acf_bvar ${_moo_acf_bvars}) |
|
95 |
SET(_moo__acf_var CMAKE_${_moo_acf_lang}_${_moo_acf_bvar}) |
|
96 |
SET(${_moo__acf_var} "${${_moo__acf_var}} ${_moo_acf_flags}") |
|
97 |
MOO_DEBUG(STATUS "${_moo__acf_var} += ${_moo_acf_flags}") |
|
98 |
ENDFOREACH(_moo_acf_bvar) |
|
99 |
ENDFOREACH(_moo_acf_lang) |
|
100 |
ENDIF(_moo_acf_args) |
|
101 |
ENDMACRO(MOO_ADD_COMPILER_FLAGS) |
|
102 |
||
103 |
||
104 |
INCLUDE(CheckCCompilerFlag) |
|
105 |
INCLUDE(CheckCXXCompilerFlag) |
|
106 |
||
107 |
MACRO(MOO_COMPILER_FLAG_VAR_NAME flag lang var) |
|
108 |
STRING(REGEX REPLACE "[-=]" "_" _moo_cfvn_name MOO_${lang}FLAG${flag}) |
|
109 |
STRING(REPLACE "+" "x" _moo_cfvn_name ${_moo_cfvn_name}) |
|
110 |
SET(${var} ${_moo_cfvn_name}) |
|
111 |
ENDMACRO(MOO_COMPILER_FLAG_VAR_NAME) |
|
112 |
||
113 |
MACRO(MOO_CHECK_COMPILER_FLAGS) |
|
114 |
_MOO_GET_COMPILER_CONFIG_ARGS(_moo_ccf_langs "FLAGS" _moo_ccf_bvars _moo_ccf_args ${ARGN}) |
|
115 |
FOREACH(_moo_ccf_lang ${_moo_ccf_langs}) |
|
116 |
SET(_moo_ccf_good_flags) |
|
117 |
FOREACH(_moo_ccf_flag ${_moo_ccf_args}) |
|
118 |
MOO_COMPILER_FLAG_VAR_NAME(${_moo_ccf_flag} ${_moo_ccf_lang} _moo_ccf_flag_name) |
|
119 |
||
120 |
IF("${_moo_ccf_lang}" STREQUAL "C") |
|
121 |
CHECK_C_COMPILER_FLAG("${_moo_ccf_flag}" ${_moo_ccf_flag_name}) |
|
122 |
ELSEIF("${_moo_ccf_lang}" STREQUAL "CXX") |
|
123 |
CHECK_CXX_COMPILER_FLAG("${_moo_ccf_flag}" ${_moo_ccf_flag_name}) |
|
124 |
ELSE("${_moo_ccf_lang}" STREQUAL "C") |
|
125 |
MOO_ERROR("Unknown lang '${lang}'") |
|
126 |
ENDIF("${_moo_ccf_lang}" STREQUAL "C") |
|
127 |
||
128 |
IF(${_moo_ccf_flag_name}) |
|
129 |
LIST(APPEND _moo_ccf_good_flags "${_moo_ccf_flag}") |
|
130 |
ENDIF(${_moo_ccf_flag_name}) |
|
131 |
ENDFOREACH(_moo_ccf_flag) |
|
132 |
IF(_moo_ccf_good_flags) |
|
133 |
_MOO_JOIN_STRING_LIST(_moo_ccf_good_flags " " ${_moo_ccf_good_flags}) |
|
134 |
FOREACH(_moo_ccf_bvar ${_moo_ccf_bvars}) |
|
135 |
SET(_moo_ccf_flags_var CMAKE_${_moo_ccf_lang}_${_moo_ccf_bvar}) |
|
136 |
SET(${_moo_ccf_flags_var} "${${_moo_ccf_flags_var}} ${_moo_ccf_good_flags}") |
|
137 |
MOO_DEBUG(STATUS "${_moo_ccf_flags_var} += ${_moo_ccf_good_flags}") |
|
138 |
ENDFOREACH(_moo_ccf_bvar) |
|
139 |
ENDIF(_moo_ccf_good_flags) |
|
140 |
ENDFOREACH(_moo_ccf_lang) |
|
141 |
ENDMACRO(MOO_CHECK_COMPILER_FLAGS) |
|
142 |
||
143 |
||
144 |
MACRO(MOO_ADD_COMPILE_DEFINITIONS) |
|
145 |
_MOO_GET_COMPILER_CONFIG_ARGS(_moo_acd_langs "COMPILE_DEFINITIONS" _moo_acd_bvars _moo_acd_args ${ARGN}) |
|
146 |
SET(_moo_acd_defs) |
|
147 |
FOREACH(_moo_acd_a ${_moo_acd_args}) |
|
148 |
STRING(REGEX REPLACE "^(-D|/D)" "" _moo_acd_a "${_moo_acd_a}") |
|
149 |
LIST(APPEND _moo_acd_defs "${_moo_acd_a}") |
|
150 |
ENDFOREACH(_moo_acd_a) |
|
151 |
#MESSAGE("MOO_ADD_COMPILE_DEFINITIONS(${ARGN}) => ${_moo_acd_langs}, ${_moo_acd_bvars}, ${_moo_acd_args}") |
|
152 |
FOREACH(_moo_acd_bvar ${_moo_acd_bvars}) |
|
153 |
SET_PROPERTY(DIRECTORY APPEND PROPERTY ${_moo_acd_bvar} ${_moo_acd_defs}) |
|
154 |
_MOO_JOIN_STRING_LIST(_moo_acd_defs_string " " ${_moo_acd_defs}) |
|
155 |
MOO_DEBUG(STATUS "${_moo_acd_bvar} += ${_moo_acd_defs_string}") |
|
156 |
ENDFOREACH(_moo_acd_bvar) |
|
157 |
ENDMACRO(MOO_ADD_COMPILE_DEFINITIONS) |
|
158 |
||
159 |
||
160 |
########################################################################### |
|
161 |
# |
|
162 |
# DEBUG |
|
163 |
# |
|
164 |
||
165 |
MOO_ADD_COMPILE_DEFINITIONS(DEBUG -DMOO_DEBUG -DDEBUG -D_DEBUG) |
|
166 |
||
167 |
||
168 |
########################################################################### |
|
169 |
# |
|
170 |
# GCC |
|
171 |
# |
|
172 |
||
173 |
# Set this first because it may affect checks below |
|
174 |
IF(MOO_DEV_MODE) |
|
175 |
MOO_ADD_COMPILER_FLAGS(GCC -Werror) |
|
176 |
ENDIF(MOO_DEV_MODE) |
|
177 |
||
178 |
MOO_ADD_COMPILER_FLAGS(GCC -Wall -Wextra) |
|
179 |
MOO_CHECK_COMPILER_FLAGS(GCC -fexceptions -fno-strict-aliasing -fno-strict-overflow) |
|
180 |
MOO_CHECK_COMPILER_FLAGS(GCC -Wno-missing-field-initializers -Wno-overlength-strings -Wno-missing-declarations) |
|
181 |
||
182 |
MOO_CHECK_COMPILER_FLAGS(GCC DEBUG -ftrapv) |
|
183 |
||
184 |
MOO_ADD_COMPILER_FLAGS(GCC CXX -std=c++98 -pedantic) |
|
185 |
MOO_CHECK_COMPILER_FLAGS(GCC CXX -fno-rtti) |
|
186 |
MOO_CHECK_COMPILER_FLAGS(GCC CXX RELEASE -fno-enforce-eh-specs) |
|
187 |
||
188 |
IF(MOO_DEV_MODE) |
|
189 |
MOO_CHECK_COMPILER_FLAGS(GCC |
|
190 |
-Wcast-align -Wlogical-op |
|
191 |
-Wmissing-format-attribute -Wnested-externs -Wlong-long -Wvla |
|
192 |
-Wuninitialized -Winit-self) |
|
193 |
MOO_CHECK_COMPILER_FLAGS(GCC CXX -fno-nonansi-builtins -fno-gnu-keywords) |
|
194 |
MOO_CHECK_COMPILER_FLAGS(GCC CXX |
|
195 |
-Wctor-dtor-privacy -Wnon-virtual-dtor -Wabi |
|
196 |
-Wstrict-null-sentinel -Woverloaded-virtual -Wsign-promo |
|
197 |
) |
|
198 |
ENDIF(MOO_DEV_MODE) |
|
199 |
||
200 |
||
201 |
############################################################################### |
|
202 |
# |
|
203 |
# Windows |
|
204 |
# |
|
205 |
||
206 |
MOO_ADD_COMPILE_DEFINITIONS(WIN32 -D__WIN32__ -DWIN32_LEAN_AND_MEAN -DUNICODE -D_UNICODE -DSTRICT) |
|
207 |
||
208 |
MOO_ADD_COMPILER_FLAGS(MSVC /W4 /GS) |
|
209 |
MOO_ADD_COMPILER_FLAGS(MSVC CXX /Zc:wchar_t,forScope /GR /EHc /EHsc) |
|
210 |
||
211 |
MOO_ADD_COMPILER_FLAGS(MSVC |
|
212 |
/wd4221 /wd4204 /wd4996 /wd4244 /wd4055 /wd4127 /wd4100 |
|
213 |
/wd4054 /wd4152 /wd4706 /wd4125 /wd4389 /wd4132 /wd4018 |
|
214 |
) |
|
215 |
||
216 |
IF(MOO_DEV_MODE) |
|
217 |
MOO_ADD_COMPILER_FLAGS(MSVC /WX) |
|
218 |
MOO_ADD_COMPILER_FLAGS(MSVC DEBUG /RTCsu /RTCc) |
|
219 |
ENDIF(MOO_DEV_MODE) |
|
220 |
||
221 |
||
222 |
############################################################################### |
|
223 |
# |
|
224 |
# Mac OS X |
|
225 |
# |
|
226 |
||
227 |
IF(APPLE) |
|
228 |
MOO_OPTION(MOO_ENABLE_UNIVERSAL FALSE "Build a universal binary on Mac OS X" HIDDEN !${MOO_OS_DARWIN}) |
|
229 |
ENDIF(APPLE) |
|
230 |
||
231 |
IF(APPLE AND MOO_ENABLE_UNIVERSAL) |
|
232 |
SET(CMAKE_OSX_ARCHITECTURES "ppc;i386") |
|
233 |
SET(CMAKE_OSX_SYSROOT "/Developer/SDKs/MacOSX10.4u.sdk") |
|
234 |
ENDIF(APPLE AND MOO_ENABLE_UNIVERSAL) |
|
235 |
||
236 |
||
237 |
############################################################################### |
|
238 |
# |
|
239 |
# Precompiled headers |
|
240 |
# |
|
241 |
||
242 |
MOO_OPTION(MOO_ENABLE_PCH FALSE "Enable precompiled headers. May be broken.") |
|
243 |
||
244 |
MACRO(__MOO_PCH_GNUCXX_GET_COMPILE_FLAGS outvar target) |
|
245 |
||
246 |
STRING(TOUPPER "CMAKE_CXX_FLAGS_${CMAKE_BUILD_TYPE}" _moo_varname) |
|
247 |
LIST(APPEND ${outvar} ${${_moo_varname}}) |
|
248 |
||
249 |
GET_TARGET_PROPERTY(target_type ${target} TYPE) |
|
250 |
IF("${target_type}" STREQUAL "SHARED_LIBRARY") |
|
251 |
LIST(APPEND ${outvar} -fPIC) |
|
252 |
ENDIF("${target_type}" STREQUAL "SHARED_LIBRARY") |
|
253 |
||
254 |
GET_DIRECTORY_PROPERTY(includes INCLUDE_DIRECTORIES) |
|
255 |
FOREACH(item ${includes}) |
|
256 |
LIST(APPEND ${outvar} "-I${item}") |
|
257 |
ENDFOREACH(item) |
|
258 |
||
259 |
STRING(TOUPPER "COMPILE_DEFINITIONS_${CMAKE_BUILD_TYPE}" _moo_varname) |
|
260 |
GET_DIRECTORY_PROPERTY(flags ${_moo_varname}) |
|
261 |
FOREACH(item ${flags}) |
|
262 |
LIST(APPEND ${outvar} "-D${item}") |
|
263 |
ENDFOREACH(item) |
|
264 |
GET_DIRECTORY_PROPERTY(flags COMPILE_DEFINITIONS) |
|
265 |
FOREACH(item ${flags}) |
|
266 |
LIST(APPEND ${outvar} "-D${item}") |
|
267 |
ENDFOREACH(item) |
|
268 |
||
269 |
GET_DIRECTORY_PROPERTY(flags DEFINITIONS) |
|
270 |
LIST(APPEND ${outvar} ${flags}) |
|
271 |
LIST(APPEND ${outvar} ${CMAKE_CXX_FLAGS} ) |
|
272 |
||
273 |
SEPARATE_ARGUMENTS(${outvar}) |
|
274 |
ENDMACRO(__MOO_PCH_GNUCXX_GET_COMPILE_FLAGS) |
|
275 |
||
276 |
MACRO(__MOO_PCH_GNUCXX_GET_COMMAND outvar target input output) |
|
277 |
__MOO_PCH_GNUCXX_GET_COMPILE_FLAGS(_moo_compile_flags target) |
|
278 |
SET(_moo_pch_compile_command |
|
279 |
${CMAKE_CXX_COMPILER} ${CMAKE_CXX_COMPILER_ARG1} ${_moo_compile_flags} -x c++-header -o ${output} ${input} |
|
280 |
) |
|
281 |
ENDMACRO(__MOO_PCH_GNUCXX_GET_COMMAND) |
|
282 |
||
283 |
MACRO(__MOO_PRECOMPILE_HEADER_GNUCXX header target) |
|
284 |
SET(_moo_pch_output_dir ${CMAKE_CURRENT_BINARY_DIR}/${header}.gch) |
|
285 |
SET(_moo_pch_output ${_moo_pch_output_dir}/c++) |
|
286 |
SET(_moo_pch_input_s ${CMAKE_CURRENT_SOURCE_DIR}/${header}) |
|
287 |
SET(_moo_pch_input_b ${CMAKE_CURRENT_BINARY_DIR}/${header}) |
|
288 |
SET(_moo_pch_lib ${target}_pchlib) |
|
289 |
||
290 |
SET_SOURCE_FILES_PROPERTIES(${_moo_pch_input_b} PROPERTIES GENERATED 1) |
|
291 |
||
292 |
MOO_SUBDIR_NAME(_moo_subdir) |
|
293 |
||
294 |
ADD_CUSTOM_COMMAND(OUTPUT ${_moo_pch_input_b} |
|
295 |
COMMAND ${CMAKE_COMMAND} -E copy ${_moo_pch_input_s} ${_moo_pch_input_b} |
|
296 |
DEPENDS ${_moo_pch_input_s} |
|
297 |
COMMENT "Generating ${_moo_subdir}/${header}" |
|
298 |
) |
|
299 |
||
300 |
ADD_CUSTOM_TARGET(${target}_pch DEPENDS ${_moo_pch_output}) |
|
301 |
ADD_DEPENDENCIES(${target} ${target}_pch) |
|
302 |
||
303 |
__MOO_PCH_GNUCXX_GET_COMMAND(_moo_pch_compile_command ${target} ${_moo_pch_input_b} ${_moo_pch_output}) |
|
304 |
ADD_CUSTOM_COMMAND(OUTPUT ${_moo_pch_output} |
|
305 |
COMMAND ${CMAKE_COMMAND} -E make_directory ${_moo_pch_output_dir} |
|
306 |
COMMAND ${_moo_pch_compile_command} |
|
307 |
DEPENDS ${_moo_pch_input_s} ${_moo_pch_input_b} # ${_moo_pch_lib} |
|
308 |
COMMENT "Generating ${_moo_subdir}/${header}.gch/c++" |
|
309 |
) |
|
310 |
||
311 |
GET_TARGET_PROPERTY(_moo_old_flags ${target} COMPILE_FLAGS) |
|
312 |
IF(NOT _moo_old_flags) |
|
313 |
SET(_moo_old_flags) |
|
314 |
ENDIF(NOT _moo_old_flags) |
|
315 |
SET_TARGET_PROPERTIES(${target} PROPERTIES COMPILE_FLAGS |
|
316 |
"-include ${_moo_pch_input_b} -Winvalid-pch ${_moo_old_flags}" |
|
317 |
) |
|
318 |
ENDMACRO(__MOO_PRECOMPILE_HEADER_GNUCXX) |
|
319 |
||
320 |
MACRO(MOO_PRECOMPILE_HEADER header target) |
|
321 |
IF(MOO_ENABLE_PCH) |
|
322 |
IF(CMAKE_COMPILER_IS_GNUCXX) |
|
323 |
__MOO_PRECOMPILE_HEADER_GNUCXX(${header} ${target}) |
|
324 |
ELSE(CMAKE_COMPILER_IS_GNUCXX) |
|
325 |
MESSAGE(STATUS "*** IMPLEMENT ME: precompiled headers for this compiler") |
|
326 |
ENDIF(CMAKE_COMPILER_IS_GNUCXX) |
|
327 |
ENDIF(MOO_ENABLE_PCH) |
|
328 |
ENDMACRO(MOO_PRECOMPILE_HEADER) |
Up to file-list cmake/modules/FindMooI18n.cmake:
1 |
MOO_OPTION(ENABLE_NLS TRUE "Enable i18n" HEADER TRUE) |
|
2 |
||
3 |
IF(ENABLE_NLS) |
|
4 |
FIND_PACKAGE(Gettext) |
|
5 |
IF(NOT GETTEXT_FOUND) |
|
6 |
MOO_ERROR("Gettext has not been found, translations will not be enabled") |
|
7 |
ENDIF(NOT GETTEXT_FOUND) |
|
8 |
ENDIF(ENABLE_NLS) |
|
9 |
||
10 |
MACRO(MOO_ADD_MSG_CATALOG catalogname dir) |
|
11 |
IF(ENABLE_NLS) |
|
12 |
FILE(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/${dir}) |
|
13 |
FILE(GLOB _moo_po_files ${dir}/*.po) |
|
14 |
SET(_moo_langs) |
|
15 |
SET(_moo_gmo_files) |
|
16 |
FOREACH(_moo_po_file ${_moo_po_files}) |
|
17 |
GET_FILENAME_COMPONENT(_moo_lang_code ${_moo_po_file} NAME_WE) |
|
18 |
LIST(APPEND _moo_langs ${_moo_lang_code}) |
|
19 |
SET(_moo_gmo_file ${CMAKE_BINARY_DIR}/${dir}/${_moo_lang_code}.gmo) |
|
20 |
LIST(APPEND _moo_gmo_files ${_moo_gmo_file}) |
|
21 |
ADD_CUSTOM_COMMAND(OUTPUT ${_moo_gmo_file} |
|
22 |
COMMAND ${GETTEXT_MSGFMT_EXECUTABLE} --check -o ${_moo_gmo_file} ${_moo_po_file} |
|
23 |
DEPENDS ${_moo_po_file}) |
|
24 |
INSTALL(FILES ${_moo_gmo_file} DESTINATION ${LOCALEDIR}/${_moo_lang_code}/LC_MESSAGES/ RENAME ${catalogname}.mo) |
|
25 |
ENDFOREACH(_moo_po_file) |
|
26 |
SET_SOURCE_FILES_PROPERTIES(${_moo_gmo_files} PROPERTIES GENERATED 1 EXTERNAL_OBJECT 1) |
|
27 |
ADD_CUSTOM_TARGET(translations-${catalogname} ALL SOURCES ${_moo_gmo_files}) |
|
28 |
ENDIF(ENABLE_NLS) |
|
29 |
|
|
1 |
MOO_OPTION(ENABLE_NLS TRUE "Enable i18n" HEADER TRUE) |
|
2 |
||
3 |
IF(ENABLE_NLS) |
|
4 |
FIND_PACKAGE(Gettext) |
|
5 |
IF(NOT GETTEXT_FOUND) |
|
6 |
MOO_ERROR("Gettext has not been found, translations will not be enabled") |
|
7 |
ENDIF(NOT GETTEXT_FOUND) |
|
8 |
ENDIF(ENABLE_NLS) |
|
9 |
||
10 |
MACRO(MOO_ADD_MSG_CATALOG catalogname dir) |
|
11 |
IF(ENABLE_NLS) |
|
12 |
FILE(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/${dir}) |
|
13 |
FILE(GLOB _moo_po_files ${dir}/*.po) |
|
14 |
SET(_moo_langs) |
|
15 |
SET(_moo_gmo_files) |
|
16 |
FOREACH(_moo_po_file ${_moo_po_files}) |
|
17 |
GET_FILENAME_COMPONENT(_moo_lang_code ${_moo_po_file} NAME_WE) |
|
18 |
LIST(APPEND _moo_langs ${_moo_lang_code}) |
|
19 |
SET(_moo_gmo_file ${CMAKE_BINARY_DIR}/${dir}/${_moo_lang_code}.gmo) |
|
20 |
LIST(APPEND _moo_gmo_files ${_moo_gmo_file}) |
|
21 |
ADD_CUSTOM_COMMAND(OUTPUT ${_moo_gmo_file} |
|
22 |
COMMAND ${GETTEXT_MSGFMT_EXECUTABLE} --check -o ${_moo_gmo_file} ${_moo_po_file} |
|
23 |
DEPENDS ${_moo_po_file}) |
|
24 |
INSTALL(FILES ${_moo_gmo_file} DESTINATION ${LOCALEDIR}/${_moo_lang_code}/LC_MESSAGES/ RENAME ${catalogname}.mo) |
|
25 |
ENDFOREACH(_moo_po_file) |
|
26 |
SET_SOURCE_FILES_PROPERTIES(${_moo_gmo_files} PROPERTIES GENERATED 1 EXTERNAL_OBJECT 1) |
|
27 |
ADD_CUSTOM_TARGET(translations-${catalogname} ALL SOURCES ${_moo_gmo_files}) |
|
28 |
ENDIF(ENABLE_NLS) |
|
29 |
ENDMACRO(MOO_ADD_MSG_CATALOG) |
Up to file-list cmake/modules/FindMooLibXml2.cmake:
1 |
FIND_PACKAGE(LibXml2) |
|
2 |
IF(NOT LIBXML2_FOUND AND WIN32) |
|
3 |
IF(LIBXML2_XMLLINT_EXECUTABLE AND LIBXML2_LIBRARIES) |
|
4 |
GET_FILENAME_COMPONENT(_mpkg_libxml2_path ${LIBXML2_XMLLINT_EXECUTABLE} ABSOLUTE) |
|
5 |
GET_FILENAME_COMPONENT(_mpkg_libxml2_path ${_mpkg_libxml2_path} PATH) |
|
6 |
FIND_PATH(LIBXML2_INCLUDE_DIR libxml/xpath.h HINTS ${_mpkg_libxml2_path}/../include PATH_SUFFIXES libxml2) |
|
7 |
IF(LIBXML2_INCLUDE_DIR) |
|
8 |
SET(LIBXML2_FOUND 1) |
|
9 |
ENDIF(LIBXML2_INCLUDE_DIR) |
|
10 |
ENDIF(LIBXML2_XMLLINT_EXECUTABLE AND LIBXML2_LIBRARIES) |
|
11 |
|
|
1 |
FIND_PACKAGE(LibXml2) |
|
2 |
IF(NOT LIBXML2_FOUND AND WIN32) |
|
3 |
IF(LIBXML2_XMLLINT_EXECUTABLE AND LIBXML2_LIBRARIES) |
|
4 |
GET_FILENAME_COMPONENT(_mpkg_libxml2_path ${LIBXML2_XMLLINT_EXECUTABLE} ABSOLUTE) |
|
5 |
GET_FILENAME_COMPONENT(_mpkg_libxml2_path ${_mpkg_libxml2_path} PATH) |
|
6 |
FIND_PATH(LIBXML2_INCLUDE_DIR libxml/xpath.h HINTS ${_mpkg_libxml2_path}/../include PATH_SUFFIXES libxml2) |
|
7 |
IF(LIBXML2_INCLUDE_DIR) |
|
8 |
SET(LIBXML2_FOUND 1) |
|
9 |
ENDIF(LIBXML2_INCLUDE_DIR) |
|
10 |
ENDIF(LIBXML2_XMLLINT_EXECUTABLE AND LIBXML2_LIBRARIES) |
|
11 |
ENDIF(NOT LIBXML2_FOUND AND WIN32) |
Up to file-list cmake/moo-libs.cmake:
1 |
MACRO(MOO_ADD_COMPILE_FLAGS target flags) |
|
2 |
GET_TARGET_PROPERTY(__moo_prop_value ${target} COMPILE_FLAGS) |
|
3 |
IF(__moo_prop_value) |
|
4 |
SET_TARGET_PROPERTIES(${target} PROPERTIES COMPILE_FLAGS "${flags}") |
|
5 |
ELSE(__moo_prop_value) |
|
6 |
SET_TARGET_PROPERTIES(${target} PROPERTIES COMPILE_FLAGS "${__moo_prop_value} ${flags}") |
|
7 |
ENDIF(__moo_prop_value) |
|
8 |
ENDMACRO(MOO_ADD_COMPILE_FLAGS) |
|
9 |
||
10 |
MACRO(MOO_ADD_DEFINITIONS target defs) |
|
11 |
GET_TARGET_PROPERTY(__moo_prop_value ${target} COMPILE_DEFINITIONS) |
|
12 |
IF(__moo_prop_value) |
|
13 |
LIST(APPEND __moo_prop_value ${defs}) |
|
14 |
ELSE(__moo_prop_value) |
|
15 |
SET(__moo_prop_value ${defs}) |
|
16 |
ENDIF(__moo_prop_value) |
|
17 |
SET_TARGET_PROPERTIES(${target} PROPERTIES COMPILE_DEFINITIONS "${__moo_prop_value}") |
|
18 |
ENDMACRO(MOO_ADD_DEFINITIONS) |
|
19 |
||
20 |
MACRO(MOO_ADD_SOURCE_FILE_SET name subdir) |
|
21 |
_MOO_MODULE_SOURCES_VAR_NAMES(${name} _moo_s _moo_bs _moo_st) |
|
22 |
||
23 |
IF(_moo_code_module_created_${name}) |
|
24 |
MESSAGE(FATAL_ERROR "MOO_ADD_SOURCE_FILE_SET(${name}) called twice") |
|
25 |
ENDIF(_moo_code_module_created_${name}) |
|
26 |
SET(_moo_code_module_created_${name} 1) |
|
27 |
||
28 |
SET(_moo_source_file_prefix "") |
|
29 |
IF(NOT "" STREQUAL "${subdir}") |
|
30 |
SET(_moo_source_file_prefix "${subdir}/") |
|
31 |
ENDIF(NOT "" STREQUAL "${subdir}") |
|
32 |
||
33 |
# SET(${name}_cmake_dummy ${CMAKE_CURRENT_BINARY_DIR}/${name}-cmake-dummy.c) |
|
34 |
# ADD_CUSTOM_COMMAND(OUTPUT ${${name}_cmake_dummy} |
|
35 |
# COMMAND ${CMAKE_COMMAND} -D LIBNAME=${name} -D OUTPUT=${${name}_cmake_dummy} -P ${CMAKE_SOURCE_DIR}/moo/gendummy.cmake |
|
36 |
# DEPENDS ${${name}_stamps} ${CMAKE_SOURCE_DIR}/moo/gendummy.cmake) |
|
37 |
# SET_SOURCE_FILES_PROPERTIES(${${name}_cmake_dummy} PROPERTIES GENERATED 1) |
|
38 |
||
39 |
IF(_moo_source_file_prefix) |
|
40 |
SET(_moo_sources_set_tmp ${${_moo_s}}) |
|
41 |
SET(${_moo_s}) |
|
42 |
FOREACH(_moo_source_file ${_moo_sources_set_tmp}) |
|
43 |
LIST(APPEND ${_moo_s} "${_moo_source_file_prefix}${_moo_source_file}") |
|
44 |
ENDFOREACH(_moo_source_file) |
|
45 |
ENDIF(_moo_source_file_prefix) |
|
46 |
||
47 |
LIST(APPEND moo_all_sources ${${_moo_s}} ${${_moo_bs}} ${${_moo_st}}) |
|
48 |
||
49 |
ENDMACRO(MOO_ADD_SOURCE_FILE_SET) |
|
50 |
||
51 |
MACRO(MOO_ADD_MOO_CODE_MODULE name) |
|
52 |
||
53 |
SET(_moo_code_module_subdir ${name}) |
|
54 |
||
55 |
SET(_moo_arg_next_subdir) |
|
56 |
FOREACH(_moo_arg ${ARGN}) |
|
57 |
IF(_moo_arg_next_subdir) |
|
58 |
SET(_moo_code_module_subdir ${_moo_arg}) |
|
59 |
SET(_moo_arg_next_subdir) |
|
60 |
ELSEIF("${_moo_arg}" STREQUAL "SUBDIR") |
|
61 |
SET(_moo_arg_next_subdir 1) |
|
62 |
ELSE(_moo_arg_next_subdir) |
|
63 |
MESSAGE(FATAL_ERROR " Invalid argument `${_moo_arg}' to macro MOO_ADD_CODE_MODULE") |
|
64 |
ENDIF(_moo_arg_next_subdir) |
|
65 |
ENDFOREACH(_moo_arg) |
|
66 |
||
67 |
MOO_ADD_SOURCE_FILE_SET(${name} ${_moo_code_module_subdir}) |
|
68 |
||
69 |
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/moo/${_moo_code_module_subdir} ${CMAKE_CURRENT_BINARY_DIR}/${_moo_code_module_subdir}) |
|
70 |
||
71 |
ENDMACRO(MOO_ADD_MOO_CODE_MODULE) |
|
72 |
||
73 |
MACRO(MOO_WIN32_RESOURCE rc_in module) |
|
74 |
IF(WIN32) |
|
75 |
SET(_moo_rc_file ${CMAKE_CURRENT_BINARY_DIR}/${module}.rc) |
|
76 |
SET_SOURCE_FILES_PROPERTIES(${_moo_rc_file} PROPERTIES GENERATED 1) |
|
77 |
SET(_moo_res_file ${CMAKE_CURRENT_BINARY_DIR}/${module}.res) |
|
78 |
CONFIGURE_FILE(${rc_in} ${_moo_rc_file} @ONLY) |
|
79 |
_MOO_MODULE_SOURCES_VAR_NAMES(${module} _moo_s _moo_bs _moo_st) |
|
80 |
IF(MSVC) |
|
81 |
LIST(APPEND ${_moo_s} ${_moo_rc_file}) |
|
82 |
ELSE(MSVC) |
|
83 |
ADD_CUSTOM_COMMAND(OUTPUT ${_moo_res_file} |
|
84 |
COMMAND ${WINDRES_EXECUTABLE} -i ${_moo_rc_file} --input-format=rc -o ${_moo_res_file} -O coff |
|
85 |
DEPENDS ${_moo_rc_file} |
|
86 |
) |
|
87 |
SET_SOURCE_FILES_PROPERTIES(${_moo_res_file} PROPERTIES EXTERNAL_OBJECT 1 GENERATED 1) |
|
88 |
LIST(APPEND ${_moo_s} ${_moo_res_file}) |
|
89 |
LIST(APPEND ${module}_libs ${_moo_res_file}) |
|
90 |
# FIXME rebuilding just doesn't work |
|
91 |
ENDIF(MSVC) |
|
92 |
ENDIF(WIN32) |
|
93 |
|
|
1 |
MACRO(MOO_ADD_COMPILE_FLAGS target flags) |
|
2 |
GET_TARGET_PROPERTY(__moo_prop_value ${target} COMPILE_FLAGS) |
|
3 |
IF(__moo_prop_value) |
|
4 |
SET_TARGET_PROPERTIES(${target} PROPERTIES COMPILE_FLAGS "${flags}") |
|
5 |
ELSE(__moo_prop_value) |
|
6 |
SET_TARGET_PROPERTIES(${target} PROPERTIES COMPILE_FLAGS "${__moo_prop_value} ${flags}") |
|
7 |
ENDIF(__moo_prop_value) |
|
8 |
ENDMACRO(MOO_ADD_COMPILE_FLAGS) |
|
9 |
||
10 |
MACRO(MOO_ADD_DEFINITIONS target defs) |
|
11 |
GET_TARGET_PROPERTY(__moo_prop_value ${target} COMPILE_DEFINITIONS) |
|
12 |
IF(__moo_prop_value) |
|
13 |
LIST(APPEND __moo_prop_value ${defs}) |
|
14 |
ELSE(__moo_prop_value) |
|
15 |
SET(__moo_prop_value ${defs}) |
|
16 |
ENDIF(__moo_prop_value) |
|
17 |
SET_TARGET_PROPERTIES(${target} PROPERTIES COMPILE_DEFINITIONS "${__moo_prop_value}") |
|
18 |
ENDMACRO(MOO_ADD_DEFINITIONS) |
|
19 |
||
20 |
MACRO(MOO_ADD_SOURCE_FILE_SET name subdir) |
|
21 |
_MOO_MODULE_SOURCES_VAR_NAMES(${name} _moo_s _moo_bs _moo_st) |
|
22 |
||
23 |
IF(_moo_code_module_created_${name}) |
|
24 |
MESSAGE(FATAL_ERROR "MOO_ADD_SOURCE_FILE_SET(${name}) called twice") |
|
25 |
ENDIF(_moo_code_module_created_${name}) |
|
26 |
SET(_moo_code_module_created_${name} 1) |
|
27 |
||
28 |
SET(_moo_source_file_prefix "") |
|
29 |
IF(NOT "" STREQUAL "${subdir}") |
|
30 |
SET(_moo_source_file_prefix "${subdir}/") |
|
31 |
ENDIF(NOT "" STREQUAL "${subdir}") |
|
32 |
||
33 |
# SET(${name}_cmake_dummy ${CMAKE_CURRENT_BINARY_DIR}/${name}-cmake-dummy.c) |
|
34 |
# ADD_CUSTOM_COMMAND(OUTPUT ${${name}_cmake_dummy} |
|
35 |
# COMMAND ${CMAKE_COMMAND} -D LIBNAME=${name} -D OUTPUT=${${name}_cmake_dummy} -P ${CMAKE_SOURCE_DIR}/moo/gendummy.cmake |
|
36 |
# DEPENDS ${${name}_stamps} ${CMAKE_SOURCE_DIR}/moo/gendummy.cmake) |
|
37 |
# SET_SOURCE_FILES_PROPERTIES(${${name}_cmake_dummy} PROPERTIES GENERATED 1) |
|
38 |
||
39 |
IF(_moo_source_file_prefix) |
|
40 |
SET(_moo_sources_set_tmp ${${_moo_s}}) |
|
41 |
SET(${_moo_s}) |
|
42 |
FOREACH(_moo_source_file ${_moo_sources_set_tmp}) |
|
43 |
LIST(APPEND ${_moo_s} "${_moo_source_file_prefix}${_moo_source_file}") |
|
44 |
ENDFOREACH(_moo_source_file) |
|
45 |
ENDIF(_moo_source_file_prefix) |
|
46 |
||
47 |
LIST(APPEND moo_all_sources ${${_moo_s}} ${${_moo_bs}} ${${_moo_st}}) |
|
48 |
||
49 |
ENDMACRO(MOO_ADD_SOURCE_FILE_SET) |
|
50 |
||
51 |
MACRO(MOO_ADD_MOO_CODE_MODULE name) |
|
52 |
||
53 |
SET(_moo_code_module_subdir ${name}) |
|
54 |
||
55 |
SET(_moo_arg_next_subdir) |
|
56 |
FOREACH(_moo_arg ${ARGN}) |
|
57 |
IF(_moo_arg_next_subdir) |
|
58 |
SET(_moo_code_module_subdir ${_moo_arg}) |
|
59 |
SET(_moo_arg_next_subdir) |
|
60 |
ELSEIF("${_moo_arg}" STREQUAL "SUBDIR") |
|
61 |
SET(_moo_arg_next_subdir 1) |
|
62 |
ELSE(_moo_arg_next_subdir) |
|
63 |
MESSAGE(FATAL_ERROR " Invalid argument `${_moo_arg}' to macro MOO_ADD_CODE_MODULE") |
|
64 |
ENDIF(_moo_arg_next_subdir) |
|
65 |
ENDFOREACH(_moo_arg) |
|
66 |
||
67 |
MOO_ADD_SOURCE_FILE_SET(${name} ${_moo_code_module_subdir}) |
|
68 |
||
69 |
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/moo/${_moo_code_module_subdir} ${CMAKE_CURRENT_BINARY_DIR}/${_moo_code_module_subdir}) |
|
70 |
||
71 |
ENDMACRO(MOO_ADD_MOO_CODE_MODULE) |
|
72 |
||
73 |
MACRO(MOO_WIN32_RESOURCE rc_in module) |
|
74 |
IF(WIN32) |
|
75 |
SET(_moo_rc_file ${CMAKE_CURRENT_BINARY_DIR}/${module}.rc) |
|
76 |
SET_SOURCE_FILES_PROPERTIES(${_moo_rc_file} PROPERTIES GENERATED 1) |
|
77 |
SET(_moo_res_file ${CMAKE_CURRENT_BINARY_DIR}/${module}.res) |
|
78 |
CONFIGURE_FILE(${rc_in} ${_moo_rc_file} @ONLY) |
|
79 |
_MOO_MODULE_SOURCES_VAR_NAMES(${module} _moo_s _moo_bs _moo_st) |
|
80 |
IF(MSVC) |
|
81 |
LIST(APPEND ${_moo_s} ${_moo_rc_file}) |
|
82 |
ELSE(MSVC) |
|
83 |
ADD_CUSTOM_COMMAND(OUTPUT ${_moo_res_file} |
|
84 |
COMMAND ${WINDRES_EXECUTABLE} -i ${_moo_rc_file} --input-format=rc -o ${_moo_res_file} -O coff |
|
85 |
DEPENDS ${_moo_rc_file} |
|
86 |
) |
|
87 |
SET_SOURCE_FILES_PROPERTIES(${_moo_res_file} PROPERTIES EXTERNAL_OBJECT 1 GENERATED 1) |
|
88 |
LIST(APPEND ${_moo_s} ${_moo_res_file}) |
|
89 |
LIST(APPEND ${module}_libs ${_moo_res_file}) |
|
90 |
# FIXME rebuilding just doesn't work |
|
91 |
ENDIF(MSVC) |
|
92 |
ENDIF(WIN32) |
|
93 |
ENDMACRO(MOO_WIN32_RESOURCE) |
Up to file-list cmake/moo.cmake:
1 |
MACRO(MOO_DEFINE_VERSIONS name version) |
|
2 |
STRING(REGEX REPLACE "([^.]+)[.].*" "\\1" ${name}_MAJOR_VERSION ${version}) |
|
3 |
STRING(REGEX REPLACE "[^.]+[.]([^.]+).*" "\\1" ${name}_MINOR_VERSION ${version}) |
|
4 |
STRING(REGEX REPLACE "[^.]+[.][^.]+[.]([^.]+)" "\\1" ${name}_MICRO_VERSION ${version}) |
|
5 |
SET(${name}_VERSION "\"${version}\"") |
|
6 |
SET(${name}_VERSION_UNQUOTED "${version}") |
|
7 |
ENDMACRO(MOO_DEFINE_VERSIONS) |
|
8 |
||
9 |
SET(MOO_CMAKE_COMMAND "${CMAKE_COMMAND}" |
|
10 |
-D "MOO_SOURCE_DIR=${MOO_SOURCE_DIR}" |
|
11 |
-D "MOO_BINARY_DIR=${MOO_BINARY_DIR}" |
|
12 |
-D "GLIB_GENMARSHAL_EXECUTABLE=${GLIB_GENMARSHAL_EXECUTABLE}" |
|
13 |
-D "GDK_PIXBUF_CSOURCE_EXECUTABLE=${GDK_PIXBUF_CSOURCE_EXECUTABLE}" |
|
14 |
-D "PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" |
|
15 |
-D "PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" |
|
16 |
) |
|
17 |
||
18 |
||
19 |
########################################################################## |
|
20 |
# |
|
21 |
# Code modules, automake-style |
|
22 |
# |
|
23 |
||
24 |
MACRO(_MOO_MODULE_SOURCES_VAR_NAMES module out_sources_var out_builtsources_var out_stamps_var) |
|
25 |
STRING(TOUPPER ${module} _moo_module_cap) |
|
26 |
SET(${out_sources_var} ${_moo_module_cap}_SOURCES) |
|
27 |
SET(${out_builtsources_var} ${_moo_module_cap}_BUILT_SOURCES) |
|
28 |
SET(${out_stamps_var} ${_moo_module_cap}_STAMPS) |
|
29 |
ENDMACRO(_MOO_MODULE_SOURCES_VAR_NAMES) |
|
30 |
||
31 |
MACRO(_MOO_ALL_MODULE_SOURCES module outvar) |
|
32 |
_MOO_MODULE_SOURCES_VAR_NAMES(${module} _moo_s _moo_bs _moo_st) |
|
33 |
SET(${outvar} ${${_moo_s}} ${${_moo_bs}} ${${_moo_st}}) |
|
34 |
ENDMACRO(_MOO_ALL_MODULE_SOURCES) |
|
35 |
||
36 |
MACRO(MOO_ADD_CLEAN_FILES) |
|
37 |
GET_DIRECTORY_PROPERTY(_moo_clean_files ADDITIONAL_MAKE_CLEAN_FILES) |
|
38 |
FOREACH(_moo_f ${ARGN}) |
|
39 |
LIST(APPEND _moo_clean_files ${_moo_f}) |
|
40 |
ENDFOREACH(_moo_f) |
|
41 |
SET_DIRECTORY_PROPERTIES(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "${_moo_clean_files}") |
|
42 |
ENDMACRO(MOO_ADD_CLEAN_FILES) |
|
43 |
||
44 |
MACRO(MOO_ADD_GENERATED_FILE module stampfile outputfiles) |
|
45 |
FOREACH(_moo_f ${stampfile} ${outputfiles}) |
|
46 |
GET_FILENAME_COMPONENT(_moo_d ${_moo_f} ABSOLUTE) |
|
47 |
GET_FILENAME_COMPONENT(_moo_d ${_moo_d} PATH) |
|
48 |
FILE(MAKE_DIRECTORY ${_moo_d}) |
|
49 |
ENDFOREACH(_moo_f) |
|
50 |
ADD_CUSTOM_COMMAND(OUTPUT ${stampfile} ${ARGN}) |
|
51 |
_MOO_MODULE_SOURCES_VAR_NAMES(${module} _moo_s _moo_bs _moo_st) |
|
52 |
LIST(APPEND ${_moo_st} ${stampfile}) |
|
53 |
SET_SOURCE_FILES_PROPERTIES(${stampfile} PROPERTIES EXTERNAL_OBJECT 1 GENERATED 1) |
|
54 |
LIST(APPEND ${_moo_bs} ${outputfiles}) |
|
55 |
SET_SOURCE_FILES_PROPERTIES(${outputfiles} PROPERTIES GENERATED 1) |
|
56 |
MOO_ADD_CLEAN_FILES(${stampfile} ${outputfiles}) |
|
57 |
ENDMACRO(MOO_ADD_GENERATED_FILE) |
|
58 |
||
59 |
# MACRO(MOO_GENERATE_SOURCE_FILE module) |
|
60 |
# MOO_COLLECT_ARGS(ARG OUTPUT _moo_output |
|
61 |
# ARG COMMAND _moo_command |
|
62 |
# ARG WORKING_DIRECTORY _moo_working_directory |
|
63 |
# ARG DEPENDS _moo_depends |
|
64 |
# ARGN ${ARGN}) |
|
65 |
# |
|
66 |
# SET(_moo_output_tmp ${_moo_output}) |
|
67 |
# FOREACH(_moo_f IN LISTS _moo_output_tmp) |
|
68 |
# ENDFOREACH(_moo_f) |
|
69 |
# GET_FILENAME_COMPONENT(VarName FileName |
|
70 |
# PATH|ABSOLUTE|NAME|EXT|NAME_WE|REALPATH |
|
71 |
# [CACHE]) |
|
72 |
# |
|
73 |
# # FOREACH(_moo_arg ${ARGN}) |
|
74 |
# # IF("${_moo_arg}" STREQUAL "OUTPUT") |
|
75 |
# # SET(_moo_what OUTPUT) |
|
76 |
# # ELSEIF("${_moo_arg}" STREQUAL "COMMAND") |
|
77 |
# # SET(_moo_what COMMAND) |
|
78 |
# # ELSEIF("${_moo_arg}" STREQUAL "COMMAND") |
|
79 |
# # |
|
80 |
# # IF(_moo_what EQUAL 0) |
|
