author | Ryan C. Gordon <icculus@icculus.org> |
Fri, 01 May 2015 01:12:48 -0400 | |
changeset 9580 | d37ef6990bf9 |
parent 9465 | bf1da29c9509 |
permissions | -rw-r--r-- |
6674
45a21e50ba5e
Adds CMake build system by Marcus Von Appen (bug #1597)
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff
changeset
|
1 |
macro(SET_OPTION _NAME _DESC) |
45a21e50ba5e
Adds CMake build system by Marcus Von Appen (bug #1597)
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff
changeset
|
2 |
list(APPEND ALLOPTIONS ${_NAME}) |
45a21e50ba5e
Adds CMake build system by Marcus Von Appen (bug #1597)
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff
changeset
|
3 |
if(${ARGC} EQUAL 3) |
45a21e50ba5e
Adds CMake build system by Marcus Von Appen (bug #1597)
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff
changeset
|
4 |
set(_DEFLT ${ARGV2}) |
45a21e50ba5e
Adds CMake build system by Marcus Von Appen (bug #1597)
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff
changeset
|
5 |
else() |
45a21e50ba5e
Adds CMake build system by Marcus Von Appen (bug #1597)
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff
changeset
|
6 |
set(_DEFLT OFF) |
45a21e50ba5e
Adds CMake build system by Marcus Von Appen (bug #1597)
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff
changeset
|
7 |
endif() |
45a21e50ba5e
Adds CMake build system by Marcus Von Appen (bug #1597)
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff
changeset
|
8 |
option(${_NAME} ${_DESC} ${_DEFLT}) |
45a21e50ba5e
Adds CMake build system by Marcus Von Appen (bug #1597)
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff
changeset
|
9 |
endmacro() |
45a21e50ba5e
Adds CMake build system by Marcus Von Appen (bug #1597)
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff
changeset
|
10 |
|
45a21e50ba5e
Adds CMake build system by Marcus Von Appen (bug #1597)
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff
changeset
|
11 |
macro(DEP_OPTION _NAME _DESC _DEFLT _DEPTEST _FAILDFLT) |
45a21e50ba5e
Adds CMake build system by Marcus Von Appen (bug #1597)
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff
changeset
|
12 |
list(APPEND ALLOPTIONS ${_NAME}) |
45a21e50ba5e
Adds CMake build system by Marcus Von Appen (bug #1597)
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff
changeset
|
13 |
cmake_dependent_option(${_NAME} ${_DESC} ${_DEFLT} ${_DEPTEST} ${_FAILDFLT}) |
45a21e50ba5e
Adds CMake build system by Marcus Von Appen (bug #1597)
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff
changeset
|
14 |
endmacro() |
45a21e50ba5e
Adds CMake build system by Marcus Von Appen (bug #1597)
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff
changeset
|
15 |
|
45a21e50ba5e
Adds CMake build system by Marcus Von Appen (bug #1597)
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff
changeset
|
16 |
macro(OPTION_STRING _NAME _DESC _VALUE) |
45a21e50ba5e
Adds CMake build system by Marcus Von Appen (bug #1597)
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff
changeset
|
17 |
list(APPEND ALLOPTIONS ${_NAME}) |
45a21e50ba5e
Adds CMake build system by Marcus Von Appen (bug #1597)
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff
changeset
|
18 |
set(${_NAME} ${_VALUE} CACHE STRING "${_DESC}") |
45a21e50ba5e
Adds CMake build system by Marcus Von Appen (bug #1597)
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff
changeset
|
19 |
set(HAVE_${_NAME} ${_VALUE}) |
45a21e50ba5e
Adds CMake build system by Marcus Von Appen (bug #1597)
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff
changeset
|
20 |
ENDMACRO() |
45a21e50ba5e
Adds CMake build system by Marcus Von Appen (bug #1597)
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff
changeset
|
21 |
|
45a21e50ba5e
Adds CMake build system by Marcus Von Appen (bug #1597)
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff
changeset
|
22 |
# Message Output |
45a21e50ba5e
Adds CMake build system by Marcus Von Appen (bug #1597)
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff
changeset
|
23 |
macro(MESSAGE_WARN _TEXT) |
45a21e50ba5e
Adds CMake build system by Marcus Von Appen (bug #1597)
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff
changeset
|
24 |
message(STATUS "*** WARNING: ${_TEXT}") |
45a21e50ba5e
Adds CMake build system by Marcus Von Appen (bug #1597)
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff
changeset
|
25 |
endmacro() |
45a21e50ba5e
Adds CMake build system by Marcus Von Appen (bug #1597)
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff
changeset
|
26 |
|
45a21e50ba5e
Adds CMake build system by Marcus Von Appen (bug #1597)
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff
changeset
|
27 |
macro(MESSAGE_ERROR _TEXT) |
45a21e50ba5e
Adds CMake build system by Marcus Von Appen (bug #1597)
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff
changeset
|
28 |
message(FATAL_ERROR "*** ERROR: ${_TEXT}") |
45a21e50ba5e
Adds CMake build system by Marcus Von Appen (bug #1597)
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff
changeset
|
29 |
endmacro() |
45a21e50ba5e
Adds CMake build system by Marcus Von Appen (bug #1597)
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff
changeset
|
30 |
|
45a21e50ba5e
Adds CMake build system by Marcus Von Appen (bug #1597)
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff
changeset
|
31 |
macro(MESSAGE_BOOL_OPTION _NAME _VALUE) |
45a21e50ba5e
Adds CMake build system by Marcus Von Appen (bug #1597)
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff
changeset
|
32 |
if(${_VALUE}) |
45a21e50ba5e
Adds CMake build system by Marcus Von Appen (bug #1597)
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff
changeset
|
33 |
message(STATUS " ${_NAME}:\tON") |
45a21e50ba5e
Adds CMake build system by Marcus Von Appen (bug #1597)
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff
changeset
|
34 |
else() |
45a21e50ba5e
Adds CMake build system by Marcus Von Appen (bug #1597)
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff
changeset
|
35 |
message(STATUS " ${_NAME}:\tOFF") |
45a21e50ba5e
Adds CMake build system by Marcus Von Appen (bug #1597)
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff
changeset
|
36 |
endif() |
45a21e50ba5e
Adds CMake build system by Marcus Von Appen (bug #1597)
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff
changeset
|
37 |
endmacro() |
45a21e50ba5e
Adds CMake build system by Marcus Von Appen (bug #1597)
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff
changeset
|
38 |
|
45a21e50ba5e
Adds CMake build system by Marcus Von Appen (bug #1597)
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff
changeset
|
39 |
macro(MESSAGE_TESTED_OPTION _NAME) |
45a21e50ba5e
Adds CMake build system by Marcus Von Appen (bug #1597)
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff
changeset
|
40 |
set(_REQVALUE ${${_NAME}}) |
45a21e50ba5e
Adds CMake build system by Marcus Von Appen (bug #1597)
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff
changeset
|
41 |
set(_PAD " ") |
45a21e50ba5e
Adds CMake build system by Marcus Von Appen (bug #1597)
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff
changeset
|
42 |
if(${ARGC} EQUAL 2) |
45a21e50ba5e
Adds CMake build system by Marcus Von Appen (bug #1597)
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff
changeset
|
43 |
set(_PAD ${ARGV1}) |
45a21e50ba5e
Adds CMake build system by Marcus Von Appen (bug #1597)
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff
changeset
|
44 |
endif() |
45a21e50ba5e
Adds CMake build system by Marcus Von Appen (bug #1597)
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff
changeset
|
45 |
if(NOT HAVE_${_NAME}) |
45a21e50ba5e
Adds CMake build system by Marcus Von Appen (bug #1597)
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff
changeset
|
46 |
set(HAVE_${_NAME} OFF) |
45a21e50ba5e
Adds CMake build system by Marcus Von Appen (bug #1597)
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff
changeset
|
47 |
elseif("${HAVE_${_NAME}}" MATCHES "1|TRUE|YES|Y") |
45a21e50ba5e
Adds CMake build system by Marcus Von Appen (bug #1597)
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff
changeset
|
48 |
set(HAVE_${_NAME} ON) |
45a21e50ba5e
Adds CMake build system by Marcus Von Appen (bug #1597)
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff
changeset
|
49 |
endif() |
45a21e50ba5e
Adds CMake build system by Marcus Von Appen (bug #1597)
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff
changeset
|
50 |
message(STATUS " ${_NAME}${_PAD}(Wanted: ${_REQVALUE}): ${HAVE_${_NAME}}") |
45a21e50ba5e
Adds CMake build system by Marcus Von Appen (bug #1597)
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff
changeset
|
51 |
endmacro() |
45a21e50ba5e
Adds CMake build system by Marcus Von Appen (bug #1597)
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff
changeset
|
52 |
|
45a21e50ba5e
Adds CMake build system by Marcus Von Appen (bug #1597)
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff
changeset
|
53 |
macro(LISTTOSTR _LIST _OUTPUT) |
45a21e50ba5e
Adds CMake build system by Marcus Von Appen (bug #1597)
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff
changeset
|
54 |
if(${ARGC} EQUAL 3) |
45a21e50ba5e
Adds CMake build system by Marcus Von Appen (bug #1597)
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff
changeset
|
55 |
# prefix for each element |
45a21e50ba5e
Adds CMake build system by Marcus Von Appen (bug #1597)
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff
changeset
|
56 |
set(_LPREFIX ${ARGV2}) |
45a21e50ba5e
Adds CMake build system by Marcus Von Appen (bug #1597)
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff
changeset
|
57 |
else() |
45a21e50ba5e
Adds CMake build system by Marcus Von Appen (bug #1597)
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff
changeset
|
58 |
set(_LPREFIX "") |
45a21e50ba5e
Adds CMake build system by Marcus Von Appen (bug #1597)
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff
changeset
|
59 |
endif() |
45a21e50ba5e
Adds CMake build system by Marcus Von Appen (bug #1597)
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff
changeset
|
60 |
# Do not use string(REPLACE ";" " ") here to avoid messing up list |
45a21e50ba5e
Adds CMake build system by Marcus Von Appen (bug #1597)
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff
changeset
|
61 |
# entries |
45a21e50ba5e
Adds CMake build system by Marcus Von Appen (bug #1597)
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff
changeset
|
62 |
foreach(_ITEM ${${_LIST}}) |
45a21e50ba5e
Adds CMake build system by Marcus Von Appen (bug #1597)
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff
changeset
|
63 |
set(${_OUTPUT} "${_LPREFIX}${_ITEM} ${${_OUTPUT}}") |
45a21e50ba5e
Adds CMake build system by Marcus Von Appen (bug #1597)
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff
changeset
|
64 |
endforeach() |
45a21e50ba5e
Adds CMake build system by Marcus Von Appen (bug #1597)
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff
changeset
|
65 |
endmacro() |
7182
1089a8a701c3
Fixed bug 1839 - SDL2 Cmake: VIDEO_COCOA check fails on OS X; VIDEO_COCOA sources aren't compiled.
Sam Lantinga <slouken@libsdl.org>
parents:
6674
diff
changeset
|
66 |
|
1089a8a701c3
Fixed bug 1839 - SDL2 Cmake: VIDEO_COCOA check fails on OS X; VIDEO_COCOA sources aren't compiled.
Sam Lantinga <slouken@libsdl.org>
parents:
6674
diff
changeset
|
67 |
macro(CHECK_OBJC_SOURCE_COMPILES SOURCE VAR) |
1089a8a701c3
Fixed bug 1839 - SDL2 Cmake: VIDEO_COCOA check fails on OS X; VIDEO_COCOA sources aren't compiled.
Sam Lantinga <slouken@libsdl.org>
parents:
6674
diff
changeset
|
68 |
set(PREV_REQUIRED_DEFS "${CMAKE_REQUIRED_DEFINITIONS}") |
9465
bf1da29c9509
CMake: fix CHECK_OBJC_SOURCE_COMPILES to work with GCC (thanks, Ivan!).
Ryan C. Gordon <icculus@icculus.org>
parents:
7182
diff
changeset
|
69 |
set(CMAKE_REQUIRED_DEFINITIONS "-x objective-c ${PREV_REQUIRED_DEFS}") |
7182
1089a8a701c3
Fixed bug 1839 - SDL2 Cmake: VIDEO_COCOA check fails on OS X; VIDEO_COCOA sources aren't compiled.
Sam Lantinga <slouken@libsdl.org>
parents:
6674
diff
changeset
|
70 |
CHECK_C_SOURCE_COMPILES(${SOURCE} ${VAR}) |
1089a8a701c3
Fixed bug 1839 - SDL2 Cmake: VIDEO_COCOA check fails on OS X; VIDEO_COCOA sources aren't compiled.
Sam Lantinga <slouken@libsdl.org>
parents:
6674
diff
changeset
|
71 |
set(CMAKE_REQUIRED_DEFINITIONS "${PREV_REQUIRED_DEFS}") |
1089a8a701c3
Fixed bug 1839 - SDL2 Cmake: VIDEO_COCOA check fails on OS X; VIDEO_COCOA sources aren't compiled.
Sam Lantinga <slouken@libsdl.org>
parents:
6674
diff
changeset
|
72 |
endmacro() |
1089a8a701c3
Fixed bug 1839 - SDL2 Cmake: VIDEO_COCOA check fails on OS X; VIDEO_COCOA sources aren't compiled.
Sam Lantinga <slouken@libsdl.org>
parents:
6674
diff
changeset
|
73 |