Merge pull request #23092 from webosbrew/feature/webOS
[xbmc.git] / cmake / modules / buildtools / FindJsonSchemaBuilder.cmake
blob6f7532848d7d076f02efbf0537073f603f08bb66
1 #.rst:
2 # FindJsonSchemaBuilder
3 # ---------------------
4 # Finds the JsonSchemaBuilder
6 # If WITH_JSONSCHEMABUILDER is defined and points to a directory,
7 # this path will be used to search for the JsonSchemaBuilder binary
10 # This will define the following (imported) targets::
12 #   JsonSchemaBuilder::JsonSchemaBuilder   - The JsonSchemaBuilder executable
14 if(NOT TARGET JsonSchemaBuilder::JsonSchemaBuilder)
15   if(KODI_DEPENDSBUILD)
16     get_filename_component(_jsbpath "${NATIVEPREFIX}/bin" ABSOLUTE)
17     find_program(JSONSCHEMABUILDER_EXECUTABLE NAMES "${APP_NAME_LC}-JsonSchemaBuilder" JsonSchemaBuilder
18                                    HINTS ${_jsbpath})
20     add_executable(JsonSchemaBuilder::JsonSchemaBuilder IMPORTED GLOBAL)
21     set_target_properties(JsonSchemaBuilder::JsonSchemaBuilder PROPERTIES
22                                                        IMPORTED_LOCATION "${JSONSCHEMABUILDER_EXECUTABLE}")
23   elseif(CORE_SYSTEM_NAME STREQUAL windowsstore)
24     get_filename_component(_jsbpath "${DEPENDS_PATH}/bin/json-rpc" ABSOLUTE)
25     find_program(JSONSCHEMABUILDER_EXECUTABLE NAMES "${APP_NAME_LC}-JsonSchemaBuilder" JsonSchemaBuilder
26                                               HINTS ${_jsbpath})
28     add_executable(JsonSchemaBuilder::JsonSchemaBuilder IMPORTED GLOBAL)
29     set_target_properties(JsonSchemaBuilder::JsonSchemaBuilder PROPERTIES
30                                                        IMPORTED_LOCATION "${JSONSCHEMABUILDER_EXECUTABLE}")
31   else()
32     if(WITH_JSONSCHEMABUILDER)
33       get_filename_component(_jsbpath ${WITH_JSONSCHEMABUILDER} ABSOLUTE)
34       get_filename_component(_jsbpath ${_jsbpath} DIRECTORY)
35       find_program(JSONSCHEMABUILDER_EXECUTABLE NAMES "${APP_NAME_LC}-JsonSchemaBuilder" JsonSchemaBuilder
36                                                 HINTS ${_jsbpath})
38       include(FindPackageHandleStandardArgs)
39       find_package_handle_standard_args(JsonSchemaBuilder "Could not find '${APP_NAME_LC}-JsonSchemaBuilder' or 'JsonSchemaBuilder' executable in ${_jsbpath} supplied by -DWITH_JSONSCHEMABUILDER. Make sure the executable file name matches these names!"
40                                         JSONSCHEMABUILDER_EXECUTABLE)
41       if(JSONSCHEMABUILDER_FOUND)
42         add_executable(JsonSchemaBuilder::JsonSchemaBuilder IMPORTED GLOBAL)
43         set_target_properties(JsonSchemaBuilder::JsonSchemaBuilder PROPERTIES
44                                                            IMPORTED_LOCATION "${JSONSCHEMABUILDER_EXECUTABLE}")
45       endif()
46       mark_as_advanced(JSONSCHEMABUILDER)
47     else()
48       add_subdirectory(${CMAKE_SOURCE_DIR}/tools/depends/native/JsonSchemaBuilder build/jsonschemabuilder)
49       add_executable(JsonSchemaBuilder::JsonSchemaBuilder ALIAS JsonSchemaBuilder)
50       set_target_properties(JsonSchemaBuilder PROPERTIES FOLDER Tools)
51     endif()
52   endif()
53 endif()