Skip to content

Instantly share code, notes, and snippets.

@datatypevoid
Last active April 16, 2019 14:42
Show Gist options
  • Save datatypevoid/8475d86318462975fd063d3eb9811384 to your computer and use it in GitHub Desktop.
Save datatypevoid/8475d86318462975fd063d3eb9811384 to your computer and use it in GitHub Desktop.
# - Check for the presence of SLikeNet
#
# The following variables are set when SLikeNet is found:
# SLIKENET_FOUND Set to true, if all components of SLikeNet
# have been found.
# SLIKENET_INCLUDE_DIRS Include path for the header files of SLikeNet
# SLIKENET_LIBRARIES Link these to use SLikeNet
# SLIKENET_LFLAGS Linker flags(optional)
option(
SLIKENET_USE_STATIC_LIBS
"Use static libraries from SLikeNet if enabled."
OFF
)
# Define the list of search paths for headers and libraries
set(FIND_SLIKENET_PATHS
${SLIKENET_ROOT_DIR}
$ENV{SLIKENET_ROOT_DIR}
~/Library/Frameworks
/Library/Frameworks
/usr/local
/usr
/sw
/opt/local
/opt/csw
/opt)
if(NOT SLIKENET_FOUND)
if(NOT SLIKENET_ROOT_DIR)
set(SLIKENET_ROOT_DIR ${CMAKE_INSTALL_PREFIX})
endif(NOT SLIKENET_ROOT_DIR)
# Check for the header files
find_path(SLIKENET_INCLUDE_DIR
NAMES Source DependentExtensions
HINTS ${FIND_SLIKENET_PATHS}
PATH_SUFFIXES slikenet
)
if (SLIKENET_USE_STATIC_LIBS)
find_library(SLIKENET_LIBRARY NAMES libRakNetLibStatic.a
HINTS ${FIND_SLIKENET_PATHS}
PATH_SUFFIXES build/Lib/LibStatic
)
else()
find_library(SLIKENET_LIBRARY NAMES libRakNetDLL.dylib libRakNetDLL.so
HINTS ${FIND_SLIKENET_PATHS}
PATH_SUFFIXES build/Lib/DLL
)
endif()
# Actions taken when all components have been found
find_package_handle_standard_args(SLIKENET
DEFAULT_MSG
SLIKENET_INCLUDE_DIR
SLIKENET_LIBRARY
)
if(SLIKENET_FOUND)
## Update
get_filename_component(SLIKENET_ROOT_DIR ${SLIKENET_INCLUDE_DIR} PATH)
## Feedback
if(NOT SLIKENET_FIND_QUIETLY)
message(STATUS "Found components for SLikeNet")
message(STATUS "SLIKENET_ROOT_DIR = ${SLIKENET_ROOT_DIR}")
message(STATUS "SLIKENET_INCLUDE_DIR = ${SLIKENET_INCLUDE_DIR}")
message(STATUS "SLIKENET_LIBRARY = ${SLIKENET_LIBRARY}")
endif(NOT SLIKENET_FIND_QUIETLY)
else(SLIKENET_FOUND)
if(SLIKENET_FIND_REQUIRED)
message(FATAL_ERROR "Could not find SLikeNet!")
endif(SLIKENET_FIND_REQUIRED)
endif(SLIKENET_FOUND)
# Mark advanced variables
mark_as_advanced(
SLIKENET_ROOT_DIR
SLIKENET_INCLUDE_DIRS
SLIKENET_LIBRARY
)
set(SLIKENET_SOURCE_DIR ${SLIKENET_INCLUDE_DIR}/Source/include)
set(SLIKENET_DEPENDENT_EXTENSIONS_DIR ${SLIKENET_INCLUDE_DIR}/DependentExtensions)
set(SLIKENET_INCLUDE_DIRS ${SLIKENET_SOURCE_DIR} ${SLIKENET_DEPENDENT_EXTENSIONS_DIR})
set(SLIKENET_LIBRARIES ${SLIKENET_LIBRARY})
message(STATUS "SLIKENET_INCLUDE_DIRS = ${SLIKENET_INCLUDE_DIRS}")
endif(NOT SLIKENET_FOUND)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment