mirror of
https://github.com/cemu-project/ida_game_elf_loaders.git
synced 2025-01-09 11:17:31 -03:00
144 lines
No EOL
3.4 KiB
CMake
144 lines
No EOL
3.4 KiB
CMake
set(IDA_FOUND FALSE)
|
|
set(IDA_SDK_FOUND FALSE)
|
|
|
|
#
|
|
# Find IDA.
|
|
#
|
|
|
|
find_path(IDA_PATH
|
|
NAME "idag.exe" "idaq.exe"
|
|
HINTS $ENV{IDA_DIR} $ENV{IDADIR}
|
|
PATHS "C:/Program Files/IDA" "C:/Program Files (x86)/IDA"
|
|
DOC "IDA installation directory.")
|
|
|
|
if(IDA_PATH)
|
|
set(IDA_FOUND TRUE)
|
|
message(STATUS "Looking for IDA - found at ${IDA_PATH}")
|
|
else()
|
|
message(STATUS "Looking for IDA - not found")
|
|
endif()
|
|
|
|
#
|
|
# Make up the name of the SDK library subdirectory.
|
|
#
|
|
|
|
# Detect the platform.
|
|
set(platform "unknown")
|
|
if(WIN32)
|
|
set(platform "win")
|
|
endif()
|
|
if(UNIX)
|
|
set(platform "linux")
|
|
endif()
|
|
if(APPLE)
|
|
set(platform "mac")
|
|
endif()
|
|
|
|
# Detect the compiler.
|
|
set(compiler "unknown")
|
|
if(BORLAND)
|
|
set(compiler "bcc")
|
|
endif()
|
|
if(CMAKE_COMPILER_IS_GNUCXX OR ${CMAKE_CXX_COMPILER_ID} MATCHES "Clang")
|
|
set(compiler "gcc")
|
|
endif()
|
|
if(MSVC)
|
|
set(compiler "vc")
|
|
endif()
|
|
|
|
if(CMAKE_COMPILER_IS_GNUCXX OR ${CMAKE_CXX_COMPILER_ID} MATCHES "Clang")
|
|
set(compiler "gcc")
|
|
endif()
|
|
|
|
if(MSVC)
|
|
set(compiler "vc")
|
|
endif()
|
|
|
|
set(IDA_64_BIT_EA_T OFF CACHE BOOL "Use 64-bit ea_t. Set this to build 64-bit code capable IDA plugins.")
|
|
|
|
if(IDA_64_BIT_EA_T)
|
|
set(suffix "64")
|
|
else()
|
|
set(suffix "32")
|
|
endif()
|
|
|
|
if(CMAKE_SIZEOF_VOID_P EQUAL 8 AND NOT NC_M32)
|
|
set(library_dir "lib/x64_${platform}_${compiler}_${suffix}")
|
|
else()
|
|
set(library_dir "lib/x86_${platform}_${compiler}_${suffix}")
|
|
endif()
|
|
|
|
#
|
|
# Find IDA SDK.
|
|
#
|
|
find_path(IDA_SDK_PATH
|
|
NAME ${library_dir}
|
|
HINTS $ENV{IDA_SDK_DIR} $ENV{IDA_SDK}
|
|
PATHS "${IDA_PATH}/sdk"
|
|
DOC "IDA SDK directory.")
|
|
|
|
if(IDA_SDK_PATH)
|
|
set(IDA_SDK_FOUND TRUE)
|
|
set(IDA_INCLUDE_DIR ${IDA_SDK_PATH}/include)
|
|
set(IDA_LIBRARY_DIR ${IDA_SDK_PATH}/${library_dir})
|
|
|
|
if(MSVC)
|
|
file(GLOB IDA_LIBRARIES "${IDA_LIBRARY_DIR}/*.lib")
|
|
else()
|
|
file(GLOB IDA_LIBRARIES "${IDA_LIBRARY_DIR}/*.a")
|
|
endif()
|
|
|
|
set(IDA_DEFINITIONS -D__IDP__)
|
|
if(WIN32)
|
|
set(IDA_DEFINITIONS ${IDA_DEFINITIONS} -D__NT__)
|
|
endif()
|
|
if(UNIX)
|
|
set(IDA_DEFINITIONS ${IDA_DEFINITIONS} -D__LINUX__)
|
|
endif()
|
|
if(APPLE)
|
|
set(IDA_DEFINITIONS ${IDA_DEFINITIONS} -D__MAC__)
|
|
endif()
|
|
if(CMAKE_SIZEOF_VOID_P EQUAL 8 AND NOT NC_M32)
|
|
set(IDA_DEFINITIONS ${IDA_DEFINITIONS} -D__X64__)
|
|
endif()
|
|
if(IDA_64_BIT_EA_T)
|
|
set(IDA_DEFINITIONS ${IDA_DEFINITIONS} -D__EA64__)
|
|
endif()
|
|
|
|
if(WIN32)
|
|
if(IDA_64_BIT_EA_T)
|
|
set(IDA_PLUGIN_EXT "64.dll")
|
|
else()
|
|
set(IDA_PLUGIN_EXT ".dll")
|
|
endif()
|
|
elseif(APPLE)
|
|
if(IDA_64_BIT_EA_T)
|
|
set(IDA_PLUGIN_EXT "64.lmc64")
|
|
set(IDA_SHARED_LIB_NAME ida64)
|
|
else()
|
|
set(IDA_PLUGIN_EXT ".lmc")
|
|
set(IDA_SHARED_LIB_NAME ida)
|
|
endif()
|
|
if (IDA_PATH)
|
|
file(GLOB_RECURSE IDA_SHARED_LIBRARY "${IDA_PATH}/*/lib${IDA_SHARED_LIB_NAME}.dylib")
|
|
else()
|
|
file(GLOB_RECURSE IDA_SHARED_LIBRARY "/Applications/IDA*/lib${IDA_SHARED_LIB_NAME}.dylib")
|
|
endif()
|
|
set(IDA_LIBRARIES ${IDA_LIBRARIES} ${IDA_SHARED_LIBRARY})
|
|
elseif(UNIX)
|
|
if(IDA_64_BIT_EA_T)
|
|
set(IDA_PLUGIN_EXT "64.llx64")
|
|
else()
|
|
set(IDA_PLUGIN_EXT ".llx")
|
|
endif()
|
|
endif()
|
|
|
|
message(STATUS "Looking for IDA SDK - found at ${IDA_SDK_PATH}")
|
|
else()
|
|
message(STATUS "Looking for IDA SDK - not found")
|
|
endif()
|
|
|
|
unset(platform)
|
|
unset(compiler)
|
|
unset(suffix)
|
|
unset(library_dir) |