diff --git a/CMakeLists.txt b/CMakeLists.txt index ead414c49..921457b89 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -34,6 +34,7 @@ option(OT_BUILTIN_MBEDTLS "Enable builtin mbedTLS" ON) include("${PROJECT_SOURCE_DIR}/etc/cmake/checks.cmake") include("${PROJECT_SOURCE_DIR}/etc/cmake/options.cmake") +include("${PROJECT_SOURCE_DIR}/etc/cmake/functions.cmake") execute_process( COMMAND "${PROJECT_SOURCE_DIR}/third_party/nlbuild-autotools/repo/scripts/mkversion" "-b" "`cat .default-version`" "." @@ -47,19 +48,6 @@ list(APPEND OT_PRIVATE_DEFINES set(OT_PLATFORM "none" CACHE STRING "Target platform chosen by the user at configure time") -function(ot_get_platforms arg_platforms) - set(result "none") - set(platforms_dir "${PROJECT_SOURCE_DIR}/examples/platforms") - file(GLOB platforms RELATIVE "${platforms_dir}" "${platforms_dir}/*") - foreach(platform IN LISTS platforms) - if(IS_DIRECTORY "${platforms_dir}/${platform}") - list(APPEND result "${platform}") - endif() - endforeach() - - set(${arg_platforms} "${result}" PARENT_SCOPE) -endfunction() - ot_get_platforms(OT_EXAMPLE_PLATFORMS) set_property(CACHE OT_PLATFORM PROPERTY STRINGS ${OT_EXAMPLE_PLATFORMS}) if(NOT OT_PLATFORM IN_LIST OT_EXAMPLE_PLATFORMS) diff --git a/etc/cmake/functions.cmake b/etc/cmake/functions.cmake new file mode 100755 index 000000000..9caf9e82c --- /dev/null +++ b/etc/cmake/functions.cmake @@ -0,0 +1,41 @@ +# +# Copyright (c) 2019, The OpenThread Authors. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. Neither the name of the copyright holder nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + +# Get a list of the available platforms and output as a list to the 'arg_platforms' argument +function(ot_get_platforms arg_platforms) + set(result "none") + set(platforms_dir "${PROJECT_SOURCE_DIR}/examples/platforms") + file(GLOB platforms RELATIVE "${platforms_dir}" "${platforms_dir}/*") + foreach(platform IN LISTS platforms) + if(IS_DIRECTORY "${platforms_dir}/${platform}") + list(APPEND result "${platform}") + endif() + endforeach() + + set(${arg_platforms} "${result}" PARENT_SCOPE) +endfunction()