forked from Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
83 lines
3.2 KiB
83 lines
3.2 KiB
# Run this file only once per cmake run. This is so that |
|
# users projects can override those global settings before |
|
# parsing subdirectories (which can also include this file |
|
# directly so that they can be built as standalone projects). |
|
if (DEFINED GLOBAL_SETTINGS_SET) |
|
return () |
|
endif () |
|
set (GLOBAL_SETTINGS_SET "TRUE") |
|
|
|
if (NOT DEFINED VIDEOCORE_ROOT) |
|
message (FATAL_ERROR |
|
" **************************************************\n" |
|
" * Variable VIDEOCORE_ROOT is not defined. please *\n" |
|
" * define it before including this cmake file. *\n" |
|
" * this variable has to be set to the *absolute* *\n" |
|
" * path to the top of the videocore source tree *\n" |
|
" **************************************************\n" |
|
) |
|
endif () |
|
|
|
if (NOT IS_ABSOLUTE "${VIDEOCORE_ROOT}") |
|
message (FATAL_ERROR |
|
" **************************************************\n" |
|
" * Variable VIDEOCORE_ROOT doesn't contain *\n" |
|
" * absolute path *\n" |
|
" **************************************************\n" |
|
) |
|
endif () |
|
|
|
set (VIDEOCORE_RTOSES threadx none win32 pthreads nucleus) |
|
foreach (possible_rtos ${VIDEOCORE_RTOSES}) |
|
set (VIDEOCORE_RTOSES_STR "${possible_rtos}, ${VIDEOCORE_RTOSES_STR}") |
|
set (VIDEOCORE_RTOSES_RE "${VIDEOCORE_RTOSES_RE}|(${possible_rtos})") |
|
endforeach () |
|
|
|
if (NOT DEFINED RTOS) |
|
# Guess which OS we are on to maintain backwards compatibility |
|
if (WIN32) |
|
set (RTOS win32) |
|
else () |
|
set (RTOS pthreads) |
|
endif () |
|
endif () |
|
|
|
if (NOT ${RTOS} MATCHES ${VIDEOCORE_RTOSES_RE}) |
|
message (FATAL_ERROR |
|
" **************************************************\n" |
|
" * RTOS incorrectly defined. Please define it *\n" |
|
" * correctly and rerun cmake (possibly after *\n" |
|
" * removing files from this run). *\n" |
|
" * Possible options are: ${VIDEOCORE_RTOSES_STR}\n" |
|
" **************************************************\n" |
|
) |
|
endif () |
|
|
|
if (NOT DEFINED VIDEOCORE_BUILD_DIR) |
|
set (VIDEOCORE_BUILD_DIR "${VIDEOCORE_ROOT}/build") |
|
endif () |
|
set (VIDEOCORE_ARCHIVE_BUILD_DIR "${VIDEOCORE_BUILD_DIR}/lib") |
|
set (VIDEOCORE_HEADERS_BUILD_DIR "${VIDEOCORE_BUILD_DIR}/inc") |
|
set (VIDEOCORE_RUNTIME_BUILD_DIR "${VIDEOCORE_BUILD_DIR}/bin") |
|
if (VIDEOCORE_ALL_RUNTIMES_AND_LIBRARIES_IN_SAME_DIRECTORY) |
|
# this is useful on windows to avoid problems with dlls not being found at |
|
# runtime... |
|
set (VIDEOCORE_LIBRARY_BUILD_DIR "${VIDEOCORE_BUILD_DIR}/bin") |
|
set (VIDEOCORE_TESTAPP_BUILD_DIR "${VIDEOCORE_BUILD_DIR}/bin") |
|
else () |
|
set (VIDEOCORE_LIBRARY_BUILD_DIR "${VIDEOCORE_BUILD_DIR}/lib") |
|
set (VIDEOCORE_TESTAPP_BUILD_DIR "${VIDEOCORE_BUILD_DIR}/test") |
|
endif () |
|
|
|
set (VCOS_HEADERS_BUILD_DIR "${VIDEOCORE_HEADERS_BUILD_DIR}/interface/vcos") |
|
|
|
set (CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${VIDEOCORE_ARCHIVE_BUILD_DIR}") |
|
set (CMAKE_LIBRARY_OUTPUT_DIRECTORY "${VIDEOCORE_LIBRARY_BUILD_DIR}") |
|
set (CMAKE_RUNTIME_OUTPUT_DIRECTORY "${VIDEOCORE_RUNTIME_BUILD_DIR}") |
|
|
|
include_directories ("${VIDEOCORE_HEADERS_BUILD_DIR}") |
|
|
|
function (add_testapp_subdirectory name) |
|
set (CMAKE_RUNTIME_OUTPUT_DIRECTORY "${VIDEOCORE_TESTAPP_BUILD_DIR}") |
|
add_subdirectory (${name}) |
|
endfunction ()
|
|
|