diff --git a/cmake/Modules/FindJsonCpp.cmake b/cmake/Modules/FindJsonCpp.cmake index 213022b..d720fa2 100644 --- a/cmake/Modules/FindJsonCpp.cmake +++ b/cmake/Modules/FindJsonCpp.cmake @@ -35,23 +35,23 @@ set(__jsoncpp_have_namespaced_targets OFF) set(__jsoncpp_have_interface_support OFF) if(NOT ("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" LESS 3.0)) - set(__jsoncpp_have_namespaced_targets ON) - set(__jsoncpp_have_interface_support ON) + set(__jsoncpp_have_namespaced_targets ON) + set(__jsoncpp_have_interface_support ON) elseif(("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" EQUAL 2.8) AND "${CMAKE_PATCH_VERSION}" GREATER 10) - set(__jsoncpp_have_interface_support ON) + set(__jsoncpp_have_interface_support ON) endif() # sets __jsoncpp_have_jsoncpplib based on whether or not we have a real imported jsoncpp_lib target. macro(_jsoncpp_check_for_real_jsoncpplib) - set(__jsoncpp_have_jsoncpplib FALSE) - if(TARGET jsoncpp_lib) - get_property(__jsoncpp_lib_type TARGET jsoncpp_lib PROPERTY TYPE) - # We make interface libraries. If an actual config module made it, it would be an imported library. - if(NOT __jsoncpp_lib_type STREQUAL "INTERFACE_LIBRARY") - set(__jsoncpp_have_jsoncpplib TRUE) - endif() - endif() - #message(STATUS "__jsoncpp_have_jsoncpplib ${__jsoncpp_have_jsoncpplib}") + set(__jsoncpp_have_jsoncpplib FALSE) + if(TARGET jsoncpp_lib) + get_property(__jsoncpp_lib_type TARGET jsoncpp_lib PROPERTY TYPE) + # We make interface libraries. If an actual config module made it, it would be an imported library. + if(NOT __jsoncpp_lib_type STREQUAL "INTERFACE_LIBRARY") + set(__jsoncpp_have_jsoncpplib TRUE) + endif() + endif() + #message(STATUS "__jsoncpp_have_jsoncpplib ${__jsoncpp_have_jsoncpplib}") endmacro() include(FindPackageHandleStandardArgs) @@ -65,43 +65,43 @@ set(__jsoncpp_have_jsoncpplib FALSE) find_package(jsoncpp QUIET NO_MODULE) if(jsoncpp_FOUND) - # Build a string to help us figure out when to invalidate our cache variables. - # start with where we found jsoncpp - set(__jsoncpp_info_string "[${jsoncpp_DIR}]") + # Build a string to help us figure out when to invalidate our cache variables. + # start with where we found jsoncpp + set(__jsoncpp_info_string "[${jsoncpp_DIR}]") - # part of the string to indicate if we found a real jsoncpp_lib (and what kind) - _jsoncpp_check_for_real_jsoncpplib() + # part of the string to indicate if we found a real jsoncpp_lib (and what kind) + _jsoncpp_check_for_real_jsoncpplib() - macro(_jsoncpp_apply_map_config target) - if(MSVC) - # Can't do this - different runtimes, incompatible ABI, etc. - set(_jsoncpp_debug_fallback) - else() - set(_jsoncpp_debug_fallback DEBUG) - #osvr_stash_map_config(DEBUG DEBUG RELWITHDEBINFO RELEASE MINSIZEREL NONE) - endif() - # Appending, just in case using project or upstream fixes this. - set_property(TARGET ${target} APPEND PROPERTY MAP_IMPORTED_CONFIG_RELEASE RELEASE RELWITHDEBINFO MINSIZEREL NONE ${_jsoncpp_debug_fallback}) - set_property(TARGET ${target} APPEND PROPERTY MAP_IMPORTED_CONFIG_RELWITHDEBINFO RELWITHDEBINFO RELEASE MINSIZEREL NONE ${_jsoncpp_debug_fallback}) - set_property(TARGET ${target} APPEND PROPERTY MAP_IMPORTED_CONFIG_MINSIZEREL MINSIZEREL RELEASE RELWITHDEBINFO NONE ${_jsoncpp_debug_fallback}) - set_property(TARGET ${target} APPEND PROPERTY MAP_IMPORTED_CONFIG_NONE RELEASE RELWITHDEBINFO MINSIZEREL ${_jsoncpp_debug_fallback}) - if(NOT MSVC) - set_property(TARGET ${target} APPEND PROPERTY MAP_IMPORTED_CONFIG_DEBUG DEBUG RELWITHDEBINFO RELEASE MINSIZEREL NONE) - endif() - endmacro() - if(__jsoncpp_have_jsoncpplib) - list(APPEND __jsoncpp_info_string "[${__jsoncpp_lib_type}]") - _jsoncpp_apply_map_config(jsoncpp_lib) - else() - list(APPEND __jsoncpp_info_string "[]") - endif() - # part of the string to indicate if we found jsoncpp_lib_static - if(TARGET jsoncpp_lib_static) - list(APPEND __jsoncpp_info_string "[T]") - _jsoncpp_apply_map_config(jsoncpp_lib_static) - else() - list(APPEND __jsoncpp_info_string "[]") - endif() + macro(_jsoncpp_apply_map_config target) + if(MSVC) + # Can't do this - different runtimes, incompatible ABI, etc. + set(_jsoncpp_debug_fallback) + else() + set(_jsoncpp_debug_fallback DEBUG) + #osvr_stash_map_config(DEBUG DEBUG RELWITHDEBINFO RELEASE MINSIZEREL NONE) + endif() + # Appending, just in case using project or upstream fixes this. + set_property(TARGET ${target} APPEND PROPERTY MAP_IMPORTED_CONFIG_RELEASE RELEASE RELWITHDEBINFO MINSIZEREL NONE ${_jsoncpp_debug_fallback}) + set_property(TARGET ${target} APPEND PROPERTY MAP_IMPORTED_CONFIG_RELWITHDEBINFO RELWITHDEBINFO RELEASE MINSIZEREL NONE ${_jsoncpp_debug_fallback}) + set_property(TARGET ${target} APPEND PROPERTY MAP_IMPORTED_CONFIG_MINSIZEREL MINSIZEREL RELEASE RELWITHDEBINFO NONE ${_jsoncpp_debug_fallback}) + set_property(TARGET ${target} APPEND PROPERTY MAP_IMPORTED_CONFIG_NONE NONE RELEASE RELWITHDEBINFO MINSIZEREL ${_jsoncpp_debug_fallback}) + if(NOT MSVC) + set_property(TARGET ${target} APPEND PROPERTY MAP_IMPORTED_CONFIG_DEBUG DEBUG RELWITHDEBINFO RELEASE MINSIZEREL NONE) + endif() + endmacro() + if(__jsoncpp_have_jsoncpplib) + list(APPEND __jsoncpp_info_string "[${__jsoncpp_lib_type}]") + _jsoncpp_apply_map_config(jsoncpp_lib) + else() + list(APPEND __jsoncpp_info_string "[]") + endif() + # part of the string to indicate if we found jsoncpp_lib_static + if(TARGET jsoncpp_lib_static) + list(APPEND __jsoncpp_info_string "[T]") + _jsoncpp_apply_map_config(jsoncpp_lib_static) + else() + list(APPEND __jsoncpp_info_string "[]") + endif() endif() @@ -109,284 +109,284 @@ endif() # NOTE: The contents of this "if" block update only (internal) cache variables! # (since this will only get run the first CMake pass that finds jsoncpp or that finds a different/updated install) if(jsoncpp_FOUND AND NOT __jsoncpp_info_string STREQUAL "${JSONCPP_CACHED_JSONCPP_DIR_DETAILS}") - #message("Updating jsoncpp cache variables! ${__jsoncpp_info_string}") - set(JSONCPP_CACHED_JSONCPP_DIR_DETAILS "${__jsoncpp_info_string}" CACHE INTERNAL "" FORCE) - unset(JSONCPP_IMPORTED_LIBRARY_SHARED) - unset(JSONCPP_IMPORTED_LIBRARY_STATIC) - unset(JSONCPP_IMPORTED_LIBRARY) - unset(JSONCPP_IMPORTED_INCLUDE_DIRS) - unset(JSONCPP_IMPORTED_LIBRARY_IS_SHARED) + #message("Updating jsoncpp cache variables! ${__jsoncpp_info_string}") + set(JSONCPP_CACHED_JSONCPP_DIR_DETAILS "${__jsoncpp_info_string}" CACHE INTERNAL "" FORCE) + unset(JSONCPP_IMPORTED_LIBRARY_SHARED) + unset(JSONCPP_IMPORTED_LIBRARY_STATIC) + unset(JSONCPP_IMPORTED_LIBRARY) + unset(JSONCPP_IMPORTED_INCLUDE_DIRS) + unset(JSONCPP_IMPORTED_LIBRARY_IS_SHARED) - # if(__jsoncpp_have_jsoncpplib) is equivalent to if(TARGET jsoncpp_lib) except it excludes our - # "invented" jsoncpp_lib interface targets, made for convenience purposes after this block. + # if(__jsoncpp_have_jsoncpplib) is equivalent to if(TARGET jsoncpp_lib) except it excludes our + # "invented" jsoncpp_lib interface targets, made for convenience purposes after this block. - if(__jsoncpp_have_jsoncpplib AND TARGET jsoncpp_lib_static) + if(__jsoncpp_have_jsoncpplib AND TARGET jsoncpp_lib_static) - # A veritable cache of riches - we have both shared and static! - set(JSONCPP_IMPORTED_LIBRARY_SHARED jsoncpp_lib CACHE INTERNAL "" FORCE) - set(JSONCPP_IMPORTED_LIBRARY_STATIC jsoncpp_lib_static CACHE INTERNAL "" FORCE) - if(WIN32 OR CYGWIN OR MINGW) - # DLL platforms: static library should be default - set(JSONCPP_IMPORTED_LIBRARY ${JSONCPP_IMPORTED_LIBRARY_STATIC} CACHE INTERNAL "" FORCE) - set(JSONCPP_IMPORTED_LIBRARY_IS_SHARED FALSE CACHE INTERNAL "" FORCE) - else() - # Other platforms - might require PIC to be linked into shared libraries, so safest to prefer shared. - set(JSONCPP_IMPORTED_LIBRARY ${JSONCPP_IMPORTED_LIBRARY_SHARED} CACHE INTERNAL "" FORCE) - set(JSONCPP_IMPORTED_LIBRARY_IS_SHARED TRUE CACHE INTERNAL "" FORCE) - endif() + # A veritable cache of riches - we have both shared and static! + set(JSONCPP_IMPORTED_LIBRARY_SHARED jsoncpp_lib CACHE INTERNAL "" FORCE) + set(JSONCPP_IMPORTED_LIBRARY_STATIC jsoncpp_lib_static CACHE INTERNAL "" FORCE) + if(WIN32 OR CYGWIN OR MINGW) + # DLL platforms: static library should be default + set(JSONCPP_IMPORTED_LIBRARY ${JSONCPP_IMPORTED_LIBRARY_STATIC} CACHE INTERNAL "" FORCE) + set(JSONCPP_IMPORTED_LIBRARY_IS_SHARED FALSE CACHE INTERNAL "" FORCE) + else() + # Other platforms - might require PIC to be linked into shared libraries, so safest to prefer shared. + set(JSONCPP_IMPORTED_LIBRARY ${JSONCPP_IMPORTED_LIBRARY_SHARED} CACHE INTERNAL "" FORCE) + set(JSONCPP_IMPORTED_LIBRARY_IS_SHARED TRUE CACHE INTERNAL "" FORCE) + endif() - elseif(TARGET jsoncpp_lib_static) - # Well, only one variant, but we know for sure that it's static. - set(JSONCPP_IMPORTED_LIBRARY_STATIC jsoncpp_lib_static CACHE INTERNAL "" FORCE) - set(JSONCPP_IMPORTED_LIBRARY jsoncpp_lib_static CACHE INTERNAL "" FORCE) - set(JSONCPP_IMPORTED_LIBRARY_IS_SHARED FALSE CACHE INTERNAL "" FORCE) + elseif(TARGET jsoncpp_lib_static) + # Well, only one variant, but we know for sure that it's static. + set(JSONCPP_IMPORTED_LIBRARY_STATIC jsoncpp_lib_static CACHE INTERNAL "" FORCE) + set(JSONCPP_IMPORTED_LIBRARY jsoncpp_lib_static CACHE INTERNAL "" FORCE) + set(JSONCPP_IMPORTED_LIBRARY_IS_SHARED FALSE CACHE INTERNAL "" FORCE) - elseif(__jsoncpp_have_jsoncpplib AND __jsoncpp_lib_type STREQUAL "STATIC_LIBRARY") - # We were able to figure out the mystery library is static! - set(JSONCPP_IMPORTED_LIBRARY_STATIC jsoncpp_lib CACHE INTERNAL "" FORCE) - set(JSONCPP_IMPORTED_LIBRARY jsoncpp_lib CACHE INTERNAL "" FORCE) - set(JSONCPP_IMPORTED_LIBRARY_IS_SHARED FALSE CACHE INTERNAL "" FORCE) + elseif(__jsoncpp_have_jsoncpplib AND __jsoncpp_lib_type STREQUAL "STATIC_LIBRARY") + # We were able to figure out the mystery library is static! + set(JSONCPP_IMPORTED_LIBRARY_STATIC jsoncpp_lib CACHE INTERNAL "" FORCE) + set(JSONCPP_IMPORTED_LIBRARY jsoncpp_lib CACHE INTERNAL "" FORCE) + set(JSONCPP_IMPORTED_LIBRARY_IS_SHARED FALSE CACHE INTERNAL "" FORCE) - elseif(__jsoncpp_have_jsoncpplib AND __jsoncpp_lib_type STREQUAL "SHARED_LIBRARY") - # We were able to figure out the mystery library is shared! - set(JSONCPP_IMPORTED_LIBRARY_SHARED jsoncpp_lib CACHE INTERNAL "" FORCE) - set(JSONCPP_IMPORTED_LIBRARY jsoncpp_lib CACHE INTERNAL "" FORCE) - set(JSONCPP_IMPORTED_LIBRARY_IS_SHARED TRUE CACHE INTERNAL "" FORCE) + elseif(__jsoncpp_have_jsoncpplib AND __jsoncpp_lib_type STREQUAL "SHARED_LIBRARY") + # We were able to figure out the mystery library is shared! + set(JSONCPP_IMPORTED_LIBRARY_SHARED jsoncpp_lib CACHE INTERNAL "" FORCE) + set(JSONCPP_IMPORTED_LIBRARY jsoncpp_lib CACHE INTERNAL "" FORCE) + set(JSONCPP_IMPORTED_LIBRARY_IS_SHARED TRUE CACHE INTERNAL "" FORCE) - elseif(__jsoncpp_have_jsoncpplib) - # One variant, and we have no idea if this is just an old version or if - # this is shared based on the target name alone. Hmm. - set(JSONCPP_IMPORTED_LIBRARY jsoncpp_lib CACHE INTERNAL "" FORCE) - endif() + elseif(__jsoncpp_have_jsoncpplib) + # One variant, and we have no idea if this is just an old version or if + # this is shared based on the target name alone. Hmm. + set(JSONCPP_IMPORTED_LIBRARY jsoncpp_lib CACHE INTERNAL "" FORCE) + endif() - # Now, we need include directories. Can't just limit this to old CMakes, since - # new CMakes might be used to build projects designed to support older ones. - if(__jsoncpp_have_jsoncpplib) - get_property(__jsoncpp_interface_include_dirs TARGET jsoncpp_lib PROPERTY INTERFACE_INCLUDE_DIRECTORIES) - if(__jsoncpp_interface_include_dirs) - set(JSONCPP_IMPORTED_INCLUDE_DIRS "${__jsoncpp_interface_include_dirs}" CACHE INTERNAL "" FORCE) - endif() - endif() - if(TARGET jsoncpp_lib_static AND NOT JSONCPP_IMPORTED_INCLUDE_DIRS) - get_property(__jsoncpp_interface_include_dirs TARGET jsoncpp_lib_static PROPERTY INTERFACE_INCLUDE_DIRECTORIES) - if(__jsoncpp_interface_include_dirs) - set(JSONCPP_IMPORTED_INCLUDE_DIRS "${__jsoncpp_interface_include_dirs}" CACHE INTERNAL "" FORCE) - endif() - endif() + # Now, we need include directories. Can't just limit this to old CMakes, since + # new CMakes might be used to build projects designed to support older ones. + if(__jsoncpp_have_jsoncpplib) + get_property(__jsoncpp_interface_include_dirs TARGET jsoncpp_lib PROPERTY INTERFACE_INCLUDE_DIRECTORIES) + if(__jsoncpp_interface_include_dirs) + set(JSONCPP_IMPORTED_INCLUDE_DIRS "${__jsoncpp_interface_include_dirs}" CACHE INTERNAL "" FORCE) + endif() + endif() + if(TARGET jsoncpp_lib_static AND NOT JSONCPP_IMPORTED_INCLUDE_DIRS) + get_property(__jsoncpp_interface_include_dirs TARGET jsoncpp_lib_static PROPERTY INTERFACE_INCLUDE_DIRECTORIES) + if(__jsoncpp_interface_include_dirs) + set(JSONCPP_IMPORTED_INCLUDE_DIRS "${__jsoncpp_interface_include_dirs}" CACHE INTERNAL "" FORCE) + endif() + endif() endif() # As a convenience... if(TARGET jsoncpp_lib_static AND NOT TARGET jsoncpp_lib) - add_library(jsoncpp_lib INTERFACE) - target_link_libraries(jsoncpp_lib INTERFACE jsoncpp_lib_static) + add_library(jsoncpp_lib INTERFACE) + target_link_libraries(jsoncpp_lib INTERFACE jsoncpp_lib_static) endif() if(JSONCPP_IMPORTED_LIBRARY) - if(NOT JSONCPP_IMPORTED_INCLUDE_DIRS) - # OK, so we couldn't get it from the target... maybe we can figure it out from jsoncpp_DIR. + if(NOT JSONCPP_IMPORTED_INCLUDE_DIRS) + # OK, so we couldn't get it from the target... maybe we can figure it out from jsoncpp_DIR. - # take off the jsoncpp component - get_filename_component(__jsoncpp_import_root "${jsoncpp_DIR}/.." ABSOLUTE) - set(__jsoncpp_hints "${__jsoncpp_import_root}") - # take off the cmake component - get_filename_component(__jsoncpp_import_root "${__jsoncpp_import_root}/.." ABSOLUTE) - list(APPEND __jsoncpp_hints "${__jsoncpp_import_root}") - # take off the lib component - get_filename_component(__jsoncpp_import_root "${__jsoncpp_import_root}/.." ABSOLUTE) - list(APPEND __jsoncpp_hints "${__jsoncpp_import_root}") - # take off one more component in case of multiarch lib - get_filename_component(__jsoncpp_import_root "${__jsoncpp_import_root}/.." ABSOLUTE) - list(APPEND __jsoncpp_hints "${__jsoncpp_import_root}") + # take off the jsoncpp component + get_filename_component(__jsoncpp_import_root "${jsoncpp_DIR}/.." ABSOLUTE) + set(__jsoncpp_hints "${__jsoncpp_import_root}") + # take off the cmake component + get_filename_component(__jsoncpp_import_root "${__jsoncpp_import_root}/.." ABSOLUTE) + list(APPEND __jsoncpp_hints "${__jsoncpp_import_root}") + # take off the lib component + get_filename_component(__jsoncpp_import_root "${__jsoncpp_import_root}/.." ABSOLUTE) + list(APPEND __jsoncpp_hints "${__jsoncpp_import_root}") + # take off one more component in case of multiarch lib + get_filename_component(__jsoncpp_import_root "${__jsoncpp_import_root}/.." ABSOLUTE) + list(APPEND __jsoncpp_hints "${__jsoncpp_import_root}") - # Now, search. - find_path(JsonCpp_INCLUDE_DIR - NAMES - json/json.h - PATH_SUFFIXES include jsoncpp include/jsoncpp - HINTS ${__jsoncpp_hints}) - if(JsonCpp_INCLUDE_DIR) - mark_as_advanced(JsonCpp_INCLUDE_DIR) - # Note - this does not set it in the cache, in case we find it better at some point in the future! - set(JSONCPP_IMPORTED_INCLUDE_DIRS ${JsonCpp_INCLUDE_DIR}) - endif() - endif() + # Now, search. + find_path(JsonCpp_INCLUDE_DIR + NAMES + json/json.h + PATH_SUFFIXES include jsoncpp include/jsoncpp + HINTS ${__jsoncpp_hints}) + if(JsonCpp_INCLUDE_DIR) + mark_as_advanced(JsonCpp_INCLUDE_DIR) + # Note - this does not set it in the cache, in case we find it better at some point in the future! + set(JSONCPP_IMPORTED_INCLUDE_DIRS ${JsonCpp_INCLUDE_DIR}) + endif() + endif() - find_package_handle_standard_args(JsonCpp - DEFAULT_MSG - jsoncpp_DIR - JSONCPP_IMPORTED_LIBRARY - JSONCPP_IMPORTED_INCLUDE_DIRS) + find_package_handle_standard_args(JsonCpp + DEFAULT_MSG + jsoncpp_DIR + JSONCPP_IMPORTED_LIBRARY + JSONCPP_IMPORTED_INCLUDE_DIRS) endif() if(JSONCPP_FOUND) - # Create any missing namespaced targets from the config module. - if(__jsoncpp_have_namespaced_targets) - if(JSONCPP_IMPORTED_LIBRARY AND NOT TARGET JsonCpp::JsonCpp) - add_library(JsonCpp::JsonCpp INTERFACE IMPORTED) - set_target_properties(JsonCpp::JsonCpp PROPERTIES - INTERFACE_INCLUDE_DIRECTORIES "${JSONCPP_IMPORTED_INCLUDE_DIRS}" - INTERFACE_LINK_LIBRARIES "${JSONCPP_IMPORTED_LIBRARY}") - endif() + # Create any missing namespaced targets from the config module. + if(__jsoncpp_have_namespaced_targets) + if(JSONCPP_IMPORTED_LIBRARY AND NOT TARGET JsonCpp::JsonCpp) + add_library(JsonCpp::JsonCpp INTERFACE IMPORTED) + set_target_properties(JsonCpp::JsonCpp PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${JSONCPP_IMPORTED_INCLUDE_DIRS}" + INTERFACE_LINK_LIBRARIES "${JSONCPP_IMPORTED_LIBRARY}") + endif() - if(JSONCPP_IMPORTED_LIBRARY_SHARED AND NOT TARGET JsonCpp::JsonCppShared) - add_library(JsonCpp::JsonCppShared INTERFACE IMPORTED) - set_target_properties(JsonCpp::JsonCppShared PROPERTIES - INTERFACE_INCLUDE_DIRECTORIES "${JSONCPP_IMPORTED_INCLUDE_DIRS}" - INTERFACE_LINK_LIBRARIES "${JSONCPP_IMPORTED_LIBRARY_SHARED}") - endif() + if(JSONCPP_IMPORTED_LIBRARY_SHARED AND NOT TARGET JsonCpp::JsonCppShared) + add_library(JsonCpp::JsonCppShared INTERFACE IMPORTED) + set_target_properties(JsonCpp::JsonCppShared PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${JSONCPP_IMPORTED_INCLUDE_DIRS}" + INTERFACE_LINK_LIBRARIES "${JSONCPP_IMPORTED_LIBRARY_SHARED}") + endif() - if(JSONCPP_IMPORTED_LIBRARY_STATIC AND NOT TARGET JsonCpp::JsonCppStatic) - add_library(JsonCpp::JsonCppStatic INTERFACE IMPORTED) - set_target_properties(JsonCpp::JsonCppStatic PROPERTIES - INTERFACE_INCLUDE_DIRECTORIES "${JSONCPP_IMPORTED_INCLUDE_DIRS}" - INTERFACE_LINK_LIBRARIES "${JSONCPP_IMPORTED_LIBRARY_STATIC}") - endif() + if(JSONCPP_IMPORTED_LIBRARY_STATIC AND NOT TARGET JsonCpp::JsonCppStatic) + add_library(JsonCpp::JsonCppStatic INTERFACE IMPORTED) + set_target_properties(JsonCpp::JsonCppStatic PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${JSONCPP_IMPORTED_INCLUDE_DIRS}" + INTERFACE_LINK_LIBRARIES "${JSONCPP_IMPORTED_LIBRARY_STATIC}") + endif() - # Hide the stuff we didn't, and no longer, need. - if(NOT JsonCpp_LIBRARY) - unset(JsonCpp_LIBRARY CACHE) - endif() - if(NOT JsonCpp_INCLUDE_DIR) - unset(JsonCpp_INCLUDE_DIR CACHE) - endif() - endif() + # Hide the stuff we didn't, and no longer, need. + if(NOT JsonCpp_LIBRARY) + unset(JsonCpp_LIBRARY CACHE) + endif() + if(NOT JsonCpp_INCLUDE_DIR) + unset(JsonCpp_INCLUDE_DIR CACHE) + endif() + endif() - set(JSONCPP_LIBRARY ${JSONCPP_IMPORTED_LIBRARY}) - set(JSONCPP_INCLUDE_DIRS ${JSONCPP_IMPORTED_INCLUDE_DIRS}) - if(DEFINED JSONCPP_IMPORTED_LIBRARY_IS_SHARED) - set(JSONCPP_LIBRARY_IS_SHARED ${JSONCPP_IMPORTED_LIBRARY_IS_SHARED}) - else() - unset(JSONCPP_LIBRARY_IS_SHARED) - endif() + set(JSONCPP_LIBRARY ${JSONCPP_IMPORTED_LIBRARY}) + set(JSONCPP_INCLUDE_DIRS ${JSONCPP_IMPORTED_INCLUDE_DIRS}) + if(DEFINED JSONCPP_IMPORTED_LIBRARY_IS_SHARED) + set(JSONCPP_LIBRARY_IS_SHARED ${JSONCPP_IMPORTED_LIBRARY_IS_SHARED}) + else() + unset(JSONCPP_LIBRARY_IS_SHARED) + endif() - if(JSONCPP_IMPORTED_LIBRARY_SHARED) - set(JSONCPP_LIBRARY_SHARED ${JSONCPP_IMPORTED_LIBRARY_SHARED}) - endif() + if(JSONCPP_IMPORTED_LIBRARY_SHARED) + set(JSONCPP_LIBRARY_SHARED ${JSONCPP_IMPORTED_LIBRARY_SHARED}) + endif() - if(JSONCPP_IMPORTED_LIBRARY_STATIC) - set(JSONCPP_LIBRARY_STATIC ${JSONCPP_IMPORTED_LIBRARY_STATIC}) - endif() + if(JSONCPP_IMPORTED_LIBRARY_STATIC) + set(JSONCPP_LIBRARY_STATIC ${JSONCPP_IMPORTED_LIBRARY_STATIC}) + endif() endif() # Still nothing after looking for the config file: must go "old-school" if(NOT JSONCPP_FOUND) - # Invoke pkgconfig for hints - find_package(PkgConfig QUIET) - set(_JSONCPP_INCLUDE_HINTS) - set(_JSONCPP_LIB_HINTS) - if(PKG_CONFIG_FOUND) - pkg_search_module(_JSONCPP_PC QUIET jsoncpp) - if(_JSONCPP_PC_INCLUDE_DIRS) - set(_JSONCPP_INCLUDE_HINTS ${_JSONCPP_PC_INCLUDE_DIRS}) - endif() - if(_JSONCPP_PC_LIBRARY_DIRS) - set(_JSONCPP_LIB_HINTS ${_JSONCPP_PC_LIBRARY_DIRS}) - endif() - if(_JSONCPP_PC_LIBRARIES) - set(_JSONCPP_LIB_NAMES ${_JSONCPP_PC_LIBRARIES}) - endif() - endif() + # Invoke pkgconfig for hints + find_package(PkgConfig QUIET) + set(_JSONCPP_INCLUDE_HINTS) + set(_JSONCPP_LIB_HINTS) + if(PKG_CONFIG_FOUND) + pkg_search_module(_JSONCPP_PC QUIET jsoncpp) + if(_JSONCPP_PC_INCLUDE_DIRS) + set(_JSONCPP_INCLUDE_HINTS ${_JSONCPP_PC_INCLUDE_DIRS}) + endif() + if(_JSONCPP_PC_LIBRARY_DIRS) + set(_JSONCPP_LIB_HINTS ${_JSONCPP_PC_LIBRARY_DIRS}) + endif() + if(_JSONCPP_PC_LIBRARIES) + set(_JSONCPP_LIB_NAMES ${_JSONCPP_PC_LIBRARIES}) + endif() + endif() - if(NOT _JSONCPP_LIB_NAMES) - # OK, if pkg-config wasn't able to give us a library name suggestion, then we may - # have to resort to some intense old logic. - set(_JSONCPP_LIB_NAMES jsoncpp) - set(_JSONCPP_PATHSUFFIXES) + if(NOT _JSONCPP_LIB_NAMES) + # OK, if pkg-config wasn't able to give us a library name suggestion, then we may + # have to resort to some intense old logic. + set(_JSONCPP_LIB_NAMES jsoncpp) + set(_JSONCPP_PATHSUFFIXES) - if(CMAKE_SYSTEM_NAME STREQUAL "Linux") - list(APPEND _JSONCPP_PATHSUFFIXES - linux-gcc) # bit of a generalization but close... - endif() - if(CMAKE_COMPILER_IS_GNUCXX AND CMAKE_SYSTEM_NAME STREQUAL "Linux") - list(APPEND - _JSONCPP_LIB_NAMES - json_linux-gcc-${CMAKE_CXX_COMPILER_VERSION}_libmt - json_linux-gcc_libmt) - list(APPEND _JSONCPP_PATHSUFFIXES - linux-gcc-${CMAKE_CXX_COMPILER_VERSION}) + if(CMAKE_SYSTEM_NAME STREQUAL "Linux") + list(APPEND _JSONCPP_PATHSUFFIXES + linux-gcc) # bit of a generalization but close... + endif() + if(CMAKE_COMPILER_IS_GNUCXX AND CMAKE_SYSTEM_NAME STREQUAL "Linux") + list(APPEND + _JSONCPP_LIB_NAMES + json_linux-gcc-${CMAKE_CXX_COMPILER_VERSION}_libmt + json_linux-gcc_libmt) + list(APPEND _JSONCPP_PATHSUFFIXES + linux-gcc-${CMAKE_CXX_COMPILER_VERSION}) - elseif(MSVC) - if(MSVC_VERSION EQUAL 1200) - list(APPEND _JSONCPP_LIB_NAMES json_vc6_libmt) - list(APPEND _JSONCPP_PATHSUFFIXES msvc6) - elseif(MSVC_VERSION EQUAL 1300) - list(APPEND _JSONCPP_LIB_NAMES json_vc7_libmt) - list(APPEND _JSONCPP_PATHSUFFIXES msvc7) - elseif(MSVC_VERSION EQUAL 1310) - list(APPEND _JSONCPP_LIB_NAMES json_vc71_libmt) - list(APPEND _JSONCPP_PATHSUFFIXES msvc71) - elseif(MSVC_VERSION EQUAL 1400) - list(APPEND _JSONCPP_LIB_NAMES json_vc8_libmt) - list(APPEND _JSONCPP_PATHSUFFIXES msvc80) - elseif(MSVC_VERSION EQUAL 1500) - list(APPEND _JSONCPP_LIB_NAMES json_vc9_libmt) - list(APPEND _JSONCPP_PATHSUFFIXES msvc90) - elseif(MSVC_VERSION EQUAL 1600) - list(APPEND _JSONCPP_LIB_NAMES json_vc10_libmt) - list(APPEND _JSONCPP_PATHSUFFIXES msvc10 msvc100) - endif() + elseif(MSVC) + if(MSVC_VERSION EQUAL 1200) + list(APPEND _JSONCPP_LIB_NAMES json_vc6_libmt) + list(APPEND _JSONCPP_PATHSUFFIXES msvc6) + elseif(MSVC_VERSION EQUAL 1300) + list(APPEND _JSONCPP_LIB_NAMES json_vc7_libmt) + list(APPEND _JSONCPP_PATHSUFFIXES msvc7) + elseif(MSVC_VERSION EQUAL 1310) + list(APPEND _JSONCPP_LIB_NAMES json_vc71_libmt) + list(APPEND _JSONCPP_PATHSUFFIXES msvc71) + elseif(MSVC_VERSION EQUAL 1400) + list(APPEND _JSONCPP_LIB_NAMES json_vc8_libmt) + list(APPEND _JSONCPP_PATHSUFFIXES msvc80) + elseif(MSVC_VERSION EQUAL 1500) + list(APPEND _JSONCPP_LIB_NAMES json_vc9_libmt) + list(APPEND _JSONCPP_PATHSUFFIXES msvc90) + elseif(MSVC_VERSION EQUAL 1600) + list(APPEND _JSONCPP_LIB_NAMES json_vc10_libmt) + list(APPEND _JSONCPP_PATHSUFFIXES msvc10 msvc100) + endif() - elseif(MINGW) - list(APPEND _JSONCPP_LIB_NAMES - json_mingw_libmt) - list(APPEND _JSONCPP_PATHSUFFIXES mingw) + elseif(MINGW) + list(APPEND _JSONCPP_LIB_NAMES + json_mingw_libmt) + list(APPEND _JSONCPP_PATHSUFFIXES mingw) - else() - list(APPEND _JSONCPP_LIB_NAMES - json_suncc_libmt - json_vacpp_libmt) - endif() - endif() # end of old logic + else() + list(APPEND _JSONCPP_LIB_NAMES + json_suncc_libmt + json_vacpp_libmt) + endif() + endif() # end of old logic - # Actually go looking. - find_path(JsonCpp_INCLUDE_DIR - NAMES - json/json.h - PATH_SUFFIXES jsoncpp - HINTS ${_JSONCPP_INCLUDE_HINTS}) - find_library(JsonCpp_LIBRARY - NAMES - ${_JSONCPP_LIB_NAMES} - PATHS libs - PATH_SUFFIXES ${_JSONCPP_PATHSUFFIXES} - HINTS ${_JSONCPP_LIB_HINTS}) + # Actually go looking. + find_path(JsonCpp_INCLUDE_DIR + NAMES + json/json.h + PATH_SUFFIXES jsoncpp + HINTS ${_JSONCPP_INCLUDE_HINTS}) + find_library(JsonCpp_LIBRARY + NAMES + ${_JSONCPP_LIB_NAMES} + PATHS libs + PATH_SUFFIXES ${_JSONCPP_PATHSUFFIXES} + HINTS ${_JSONCPP_LIB_HINTS}) - find_package_handle_standard_args(JsonCpp - DEFAULT_MSG - JsonCpp_INCLUDE_DIR - JsonCpp_LIBRARY) + find_package_handle_standard_args(JsonCpp + DEFAULT_MSG + JsonCpp_INCLUDE_DIR + JsonCpp_LIBRARY) - if(JSONCPP_FOUND) - # We already know that the target doesn't exist, let's make it. - # TODO don't know why we get errors like: - # error: 'JsonCpp::JsonCpp-NOTFOUND', needed by 'bin/osvr_json_to_c', missing and no known rule to make it - # when we do the imported target commented out below. So, instead, we make an interface - # target with an alias. Hmm. + if(JSONCPP_FOUND) + # We already know that the target doesn't exist, let's make it. + # TODO don't know why we get errors like: + # error: 'JsonCpp::JsonCpp-NOTFOUND', needed by 'bin/osvr_json_to_c', missing and no known rule to make it + # when we do the imported target commented out below. So, instead, we make an interface + # target with an alias. Hmm. - #add_library(JsonCpp::JsonCpp UNKNOWN IMPORTED) - #set_target_properties(JsonCpp::JsonCpp PROPERTIES - # IMPORTED_LOCATION "${JsonCpp_LIBRARY}" - # INTERFACE_INCLUDE_DIRECTORIES "${JsonCpp_INCLUDE_DIR}" - # IMPORTED_LINK_INTERFACE_LANGUAGES "CXX") + #add_library(JsonCpp::JsonCpp UNKNOWN IMPORTED) + #set_target_properties(JsonCpp::JsonCpp PROPERTIES + # IMPORTED_LOCATION "${JsonCpp_LIBRARY}" + # INTERFACE_INCLUDE_DIRECTORIES "${JsonCpp_INCLUDE_DIR}" + # IMPORTED_LINK_INTERFACE_LANGUAGES "CXX") - set(JSONCPP_LIBRARY "${JsonCpp_LIBRARY}") - set(JSONCPP_INCLUDE_DIRS "${JsonCpp_INCLUDE_DIR}") - unset(JSONCPP_LIBRARY_IS_SHARED) + set(JSONCPP_LIBRARY "${JsonCpp_LIBRARY}") + set(JSONCPP_INCLUDE_DIRS "${JsonCpp_INCLUDE_DIR}") + unset(JSONCPP_LIBRARY_IS_SHARED) - if(__jsoncpp_have_interface_support AND NOT TARGET jsoncpp_interface) - add_library(jsoncpp_interface INTERFACE) - set_target_properties(jsoncpp_interface PROPERTIES - INTERFACE_LINK_LIBRARIES "${JsonCpp_LIBRARY}" - INTERFACE_INCLUDE_DIRECTORIES "${JsonCpp_INCLUDE_DIR}") - endif() - if(__jsoncpp_have_namespaced_targets) - if(NOT TARGET JsonCpp::JsonCpp) - add_library(JsonCpp::JsonCpp ALIAS jsoncpp_interface) - endif() - endif() - endif() + if(__jsoncpp_have_interface_support AND NOT TARGET jsoncpp_interface) + add_library(jsoncpp_interface INTERFACE) + set_target_properties(jsoncpp_interface PROPERTIES + INTERFACE_LINK_LIBRARIES "${JsonCpp_LIBRARY}" + INTERFACE_INCLUDE_DIRECTORIES "${JsonCpp_INCLUDE_DIR}") + endif() + if(__jsoncpp_have_namespaced_targets) + if(NOT TARGET JsonCpp::JsonCpp) + add_library(JsonCpp::JsonCpp ALIAS jsoncpp_interface) + endif() + endif() + endif() endif() if(JSONCPP_FOUND) - mark_as_advanced(jsoncpp_DIR JsonCpp_INCLUDE_DIR JsonCpp_LIBRARY) + mark_as_advanced(jsoncpp_DIR JsonCpp_INCLUDE_DIR JsonCpp_LIBRARY) endif() \ No newline at end of file diff --git a/debian/patches/0001-remove-git-maint-version.patch b/debian/patches/0001-remove-git-maint-version.patch index be6454d..9a21ab7 100644 --- a/debian/patches/0001-remove-git-maint-version.patch +++ b/debian/patches/0001-remove-git-maint-version.patch @@ -1,10 +1,14 @@ Index: gr-satnogs/CMakeLists.txt =================================================================== ---- gr-satnogs.orig/CMakeLists.txt -+++ gr-satnogs/CMakeLists.txt -@@ -52,4 +52,4 @@ list(INSERT CMAKE_MODULE_PATH 0 ${CMAKE_ --set(VERSION_INFO_MAINT_VERSION git) -+set(VERSION_INFO_MAINT_VERSION 0) - +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -46,7 +46,7 @@ list(INSERT CMAKE_MODULE_PATH 0 ${CMAKE_SOURCE_DIR}/cmake/Modules) + set(VERSION_MAJOR 1) + set(VERSION_API 5) + set(VERSION_ABI 1) +-set(VERSION_PATCH git) ++set(VERSION_PATCH 0) + cmake_policy(SET CMP0011 NEW) + ########################################################################