blob: 8c7dc47f556bd03b8d9d1fa0617bdd2e89c17459 [file] [log] [blame]
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#.rst:
# Find@PRODUCT_NAME_NOSPACE@
# ---------
#
# Find the @PRODUCT_NAME@ headers and library.
#
# Imported Targets
# ^^^^^^^^^^^^^^^^
#
# This module defines the following :prop_tgt:`IMPORTED` targets:
#
# ``@PRODUCT_NAME_NOSPACE@::cpp``
# ``@PRODUCT_NAME_NOSPACE@::dotnet``
#
# Result Variables
# ^^^^^^^^^^^^^^^^
#
# This module will set the following variables in your project:
#
# ``@PRODUCT_NAME_NOSPACE@_FOUND``
# true if the @PRODUCT_NAME@ headers and libraries were found.
#
# ``@PRODUCT_NAME_NOSPACE@_DOTNET_LIBRARY``
# Path to .NET assembly file.
#
set(_@PRODUCT_NAME_NOSPACE@_ROOT "")
if(@PRODUCT_NAME_NOSPACE@_ROOT AND IS_DIRECTORY "${@PRODUCT_NAME_NOSPACE@_ROOT}")
set(_@PRODUCT_NAME_NOSPACE@_ROOT "${@PRODUCT_NAME_NOSPACE@_ROOT}")
set(_@PRODUCT_NAME_NOSPACE@_ROOT_EXPLICIT 1)
else()
set(_ENV_@PRODUCT_NAME_NOSPACE@_ROOT "")
if(DEFINED ENV{GEODE_NATIVE_HOME})
file(TO_CMAKE_PATH "$ENV{GEODE_NATIVE_HOME}" _ENV_@PRODUCT_NAME_NOSPACE@_ROOT)
endif()
if(_ENV_@PRODUCT_NAME_NOSPACE@_ROOT AND IS_DIRECTORY "${_ENV_@PRODUCT_NAME_NOSPACE@_ROOT}")
set(_@PRODUCT_NAME_NOSPACE@_ROOT "${_ENV_@PRODUCT_NAME_NOSPACE@_ROOT}")
set(_@PRODUCT_NAME_NOSPACE@_ROOT_EXPLICIT 0)
endif()
unset(_ENV_@PRODUCT_NAME_NOSPACE@_ROOT)
endif()
set(_@PRODUCT_NAME_NOSPACE@_HINTS)
set(_@PRODUCT_NAME_NOSPACE@_PATHS)
if(_@PRODUCT_NAME_NOSPACE@_ROOT)
set(_@PRODUCT_NAME_NOSPACE@_HINTS ${_@PRODUCT_NAME_NOSPACE@_ROOT})
else()
set(_@PRODUCT_NAME_NOSPACE@_PATHS (
"/opt/local"
"/usr/local"
"${CMAKE_CURRENT_SOURCE_DIR}/../../../"
"C:/program files" ))
endif()
# Begin - component "cpp"
set(_@PRODUCT_NAME_NOSPACE@_CPP_NAMES @PRODUCT_LIB_NAME@)
find_library(@PRODUCT_NAME_NOSPACE@_CPP_LIBRARY
NAMES ${_@PRODUCT_NAME_NOSPACE@_CPP_NAMES}
HINTS ${_@PRODUCT_NAME_NOSPACE@_HINTS}
PATHS ${_@PRODUCT_NAME_NOSPACE@_PATHS}
PATH_SUFFIXES @PRODUCT_LIB_NAME@/lib lib
)
# Look for the header file.
find_path(@PRODUCT_NAME_NOSPACE@_CPP_INCLUDE_DIR NAMES geode/CacheFactory.hpp
HINTS ${_@PRODUCT_NAME_NOSPACE@_HINTS}
PATHS ${_@PRODUCT_NAME_NOSPACE@_PATHS}
PATH_SUFFIXES @PRODUCT_LIB_NAME@/include include
)
# End - component "cpp"
# Begin - component "dotnet"
set(_@PRODUCT_NAME_NOSPACE@_DOTNET_NAMES @PRODUCT_DLL_NAME@.dll)
find_file(@PRODUCT_NAME_NOSPACE@_DOTNET_LIBRARY
NAMES ${_@PRODUCT_NAME_NOSPACE@_DOTNET_NAMES}
HINTS ${_@PRODUCT_NAME_NOSPACE@_HINTS}
PATHS ${_@PRODUCT_NAME_NOSPACE@_PATHS}
PATH_SUFFIXES @PRODUCT_LIB_NAME@/bin bin
)
# End - component "dotnet"
# TODO find version
set(@PRODUCT_NAME_NOSPACE@_VERSION_STRING 1.0)
if (@PRODUCT_NAME_NOSPACE@_FIND_COMPONENTS)
set(_@PRODUCT_NAME_NOSPACE@_REQUIRED_VARS)
foreach (component ${@PRODUCT_NAME_NOSPACE@_FIND_COMPONENTS})
if (component STREQUAL "cpp")
list(APPEND _@PRODUCT_NAME_NOSPACE@_REQUIRED_VARS @PRODUCT_NAME_NOSPACE@_CPP_LIBRARY @PRODUCT_NAME_NOSPACE@_CPP_INCLUDE_DIR)
endif()
if (component STREQUAL "dotnet")
list(APPEND _@PRODUCT_NAME_NOSPACE@_REQUIRED_VARS @PRODUCT_NAME_NOSPACE@_DOTNET_LIBRARY)
endif()
endforeach()
endif()
include(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(@PRODUCT_NAME_NOSPACE@
REQUIRED_VARS ${_@PRODUCT_NAME_NOSPACE@_REQUIRED_VARS}
VERSION_VAR @PRODUCT_NAME_NOSPACE@_VERSION_STRING)
# Copy the results to the output variables and target.
if(@PRODUCT_NAME_NOSPACE@_FOUND)
if(NOT TARGET ${@PRODUCT_NAME_NOSPACE@_CPP_TARGET})
set(@PRODUCT_NAME_NOSPACE@_CPP_TARGET "@PRODUCT_NAME_NOSPACE@::cpp")
add_library(${@PRODUCT_NAME_NOSPACE@_CPP_TARGET} UNKNOWN IMPORTED)
set_target_properties(${@PRODUCT_NAME_NOSPACE@_CPP_TARGET} PROPERTIES
IMPORTED_LINK_INTERFACE_LANGUAGES "CXX"
IMPORTED_LOCATION "${@PRODUCT_NAME_NOSPACE@_CPP_LIBRARY}"
INTERFACE_INCLUDE_DIRECTORIES "${@PRODUCT_NAME_NOSPACE@_CPP_INCLUDE_DIR}")
endif()
set(@PRODUCT_NAME_NOSPACE@_DOTNET_TARGET "@PRODUCT_NAME_NOSPACE@::dotnet")
if(NOT TARGET ${@PRODUCT_NAME_NOSPACE@_DOTNET_TARGET})
add_library(${@PRODUCT_NAME_NOSPACE@_DOTNET_TARGET} UNKNOWN IMPORTED)
set_target_properties(${@PRODUCT_NAME_NOSPACE@_DOTNET_TARGET} PROPERTIES
IMPORTED_LINK_INTERFACE_LANGUAGES "CSharp"
IMPORTED_LOCATION "${@PRODUCT_NAME_NOSPACE@_DOTNET_LIBRARY}")
endif()
else()
message(STATUS "FOUND var not set")
endif()
mark_as_advanced(@PRODUCT_NAME_NOSPACE@_CPP_INCLUDE_DIR @PRODUCT_NAME_NOSPACE@_CPP_LIBRARY @PRODUCT_NAME_NOSPACE@_DOTNET_LIBRARY)