CMake netCDF Compatibility with WPS (#2121)
[WRF.git] / cmake / modules / FindRPC.cmake
blobfbbbbda36f0c15b9ecd211983a6f96a8129b6b0c
1 # Find RPC
2 # Eventually replace with RPC's actual config if using that
3 # Once found this file will define:
4 #  RPC_FOUND - System has RPC
5 #  RPC_INCLUDE_DIRS - The RPC include directories
6 #  RPC_LIBRARIES - The libraries needed to use RPC
8 find_package( PkgConfig )
9 pkg_check_modules( PC_RPC QUIET RPC )
10 # set(CMAKE_FIND_DEBUG_MODE TRUE)
11 find_path(
12           RPC_INCLUDE_DIR
13           NAMES rpc/types.h # Make it so we go up one dir
14           # Hints before PATHS
15           HINTS ENV RPC_ROOT ENV RPCINC ENV RPC_PATH ${RPC_ROOT} ${RPCINC} ${RPC_PATH}
16           PATHS ${PC_RPC_INCLUDE_DIRS}
17           PATH_SUFFIXES tirpc
18         )
19 find_library(
20               RPC_LIBRARY
21               NAMES rpc rpcsvc
22               # Hints before PATHS
23               HINTS ENV RPC_ROOT ENV RPCLIB ENV RPC_PATH ${RPC_ROOT} ${RPCLIB} ${RPC_PATH}
24               PATHS ${PC_RPC_LIBRARY_DIRS}
25               PATH_SUFFIXES lib
26             )
28 # set(CMAKE_FIND_DEBUG_MODE FALSE)
30 include(FindPackageHandleStandardArgs)
31 find_package_handle_standard_args(
32                                   RPC
33                                   FOUND_VAR RPC_FOUND
34                                   REQUIRED_VARS
35                                     RPC_LIBRARY
36                                     RPC_INCLUDE_DIR
37                                   # VERSION_VAR RPC_VERSION
38                                 )
40 if ( RPC_FOUND AND NOT TARGET RPC::RPC )
41   add_library( RPC::RPC UNKNOWN IMPORTED )
42   set_target_properties(
43                         RPC::RPC
44                         PROPERTIES
45                           IMPORTED_LOCATION             "${RPC_LIBRARY}"
46                           INTERFACE_COMPILE_OPTIONS     "${PC_RPC_CFLAGS_OTHER}"
47                           INTERFACE_INCLUDE_DIRECTORIES "${RPC_INCLUDE_DIR}"
48                         )
50   # Allow traditional/legacy style usage
51   set( RPC_LIBRARIES    ${RPC_LIBRARY}         )
52   set( RPC_INCLUDE_DIRS ${RPC_INCLUDE_DIR}     )
53   set( RPC_DEFINITIONS  ${PC_RPC_CFLAGS_OTHER} )
55   mark_as_advanced(
56                     RPC_INCLUDE_DIR
57                     RPC_LIBRARY
58                   )
59 endif()