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)
16 include(cmake/scripts/common/ModuleHelpers.cmake)
18 if(WITH_JSONSCHEMABUILDER)
19 get_filename_component(_jsbpath ${WITH_JSONSCHEMABUILDER} ABSOLUTE)
20 get_filename_component(_jsbpath ${_jsbpath} DIRECTORY)
21 find_program(JSONSCHEMABUILDER_EXECUTABLE NAMES "${APP_NAME_LC}-JsonSchemaBuilder" JsonSchemaBuilder
22 "${APP_NAME_LC}-JsonSchemaBuilder.exe" JsonSchemaBuilder.exe
25 if(NOT JSONSCHEMABUILDER_EXECUTABLE)
26 message(FATAL_ERROR "Could not find 'JsonSchemaBuilder' executable in ${_jsbpath} supplied by -DWITH_JSONSCHEMABUILDER")
30 set(MODULE_LC JsonSchemaBuilder)
31 set(${MODULE_LC}_LIB_TYPE native)
32 set(JSONSCHEMABUILDER_DISABLE_VERSION ON)
35 # Override build type detection and always build as release
36 set(JSONSCHEMABUILDER_BUILD_TYPE Release)
38 set(CMAKE_ARGS -DDUMMY_ARG=1)
41 set(INSTALL_DIR "${NATIVEPREFIX}/bin")
42 set(JSONSCHEMABUILDER_INSTALL_PREFIX ${NATIVEPREFIX})
44 set(INSTALL_DIR "${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/bin")
45 set(JSONSCHEMABUILDER_INSTALL_PREFIX ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR})
48 # Set host build info for buildtool
49 if(EXISTS "${NATIVEPREFIX}/share/Toolchain-Native.cmake")
50 set(JSONSCHEMABUILDER_TOOLCHAIN_FILE "${NATIVEPREFIX}/share/Toolchain-Native.cmake")
53 if(WIN32 OR WINDOWS_STORE)
54 # Make sure we generate for host arch, not target
55 set(JSONSCHEMABUILDER_GENERATOR_PLATFORM CMAKE_GENERATOR_PLATFORM ${HOSTTOOLSET})
56 set(APP_EXTENSION ".exe")
59 set(JSONSCHEMABUILDER_SOURCE_DIR ${CMAKE_SOURCE_DIR}/tools/depends/native/JsonSchemaBuilder/src)
60 set(JSONSCHEMABUILDER_EXECUTABLE ${INSTALL_DIR}/JsonSchemaBuilder${APP_EXTENSION})
62 set(BUILD_BYPRODUCTS ${JSONSCHEMABUILDER_EXECUTABLE})
68 include(FindPackageHandleStandardArgs)
69 find_package_handle_standard_args(JsonSchemaBuilder
70 REQUIRED_VARS JSONSCHEMABUILDER_EXECUTABLE)
72 if(JSONSCHEMABUILDER_FOUND)
73 add_executable(JsonSchemaBuilder::JsonSchemaBuilder IMPORTED GLOBAL)
74 set_target_properties(JsonSchemaBuilder::JsonSchemaBuilder PROPERTIES
75 IMPORTED_LOCATION "${JSONSCHEMABUILDER_EXECUTABLE}")
77 if(TARGET JsonSchemaBuilder)
78 add_dependencies(JsonSchemaBuilder::JsonSchemaBuilder JsonSchemaBuilder)
81 if(JSONSCHEMABUILDER_FIND_REQUIRED)
82 message(FATAL_ERROR "JsonSchemaBuilder not found.")
86 mark_as_advanced(JSONSCHEMABUILDER_EXECUTABLE)