You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
48 lines
1.8 KiB
48 lines
1.8 KiB
# - Try to find ctrulib |
|
# Once done this will define |
|
# LIBCTRU_FOUND - System has ctrulib |
|
# LIBCTRU_INCLUDE_DIRS - The ctrulib include directories |
|
# LIBCTRU_LIBRARIES - The libraries needed to use ctrulib |
|
# |
|
# It also adds an imported target named `3ds::ctrulib`. |
|
# Linking it is the same as target_link_libraries(target ${LIBCTRU_LIBRARIES}) and target_include_directories(target ${LIBCTRU_INCLUDE_DIRS}) |
|
|
|
# DevkitPro paths are broken on windows, so we have to fix those |
|
macro(msys_to_cmake_path MsysPath ResultingPath) |
|
string(REGEX REPLACE "^/([a-zA-Z])/" "\\1:/" ${ResultingPath} "${MsysPath}") |
|
endmacro() |
|
|
|
if(NOT DEVKITPRO) |
|
msys_to_cmake_path("$ENV{DEVKITPRO}" DEVKITPRO) |
|
endif() |
|
|
|
set(CTRULIB_PATHS $ENV{CTRULIB} libctru ctrulib ${DEVKITPRO}/libctru ${DEVKITPRO}/ctrulib) |
|
|
|
find_path(LIBCTRU_INCLUDE_DIR 3ds.h |
|
PATHS ${CTRULIB_PATHS} |
|
PATH_SUFFIXES include libctru/include ) |
|
|
|
find_library(LIBCTRU_LIBRARY NAMES ctru libctru.a |
|
PATHS ${CTRULIB_PATHS} |
|
PATH_SUFFIXES lib libctru/lib ) |
|
|
|
set(LIBCTRU_LIBRARIES ${LIBCTRU_LIBRARY} ) |
|
set(LIBCTRU_INCLUDE_DIRS ${LIBCTRU_INCLUDE_DIR} ) |
|
|
|
include(FindPackageHandleStandardArgs) |
|
# handle the QUIETLY and REQUIRED arguments and set LIBCTRU_FOUND to TRUE |
|
# if all listed variables are TRUE |
|
find_package_handle_standard_args(CTRULIB DEFAULT_MSG |
|
LIBCTRU_LIBRARY LIBCTRU_INCLUDE_DIR) |
|
|
|
mark_as_advanced(LIBCTRU_INCLUDE_DIR LIBCTRU_LIBRARY ) |
|
if(CTRULIB_FOUND) |
|
set(CTRULIB ${LIBCTRU_INCLUDE_DIR}/..) |
|
message(STATUS "setting CTRULIB to ${CTRULIB}") |
|
|
|
add_library(3ds::ctrulib STATIC IMPORTED GLOBAL) |
|
set_target_properties(3ds::ctrulib PROPERTIES |
|
IMPORTED_LOCATION "${LIBCTRU_LIBRARY}" |
|
INTERFACE_INCLUDE_DIRECTORIES "${LIBCTRU_INCLUDE_DIR}" |
|
) |
|
endif()
|
|
|