|  | #[=======================================================================[.rst: | 
        
          |  | FindPluginSDK | 
        
          |  | ------------- | 
        
          |  |  | 
        
          |  | FindModule for Plugin-SDK library (https://github.com/DK22Pac/plugin-sdk). | 
        
          |  |  | 
        
          |  | COMPONENTS | 
        
          |  | ^^^^^^^^^^ | 
        
          |  |  | 
        
          |  | This module respects several components: ``gta3``, ``gtavc``, and ``gtasa``. | 
        
          |  | There are corresponding import targets for each of these flags. | 
        
          |  | No targets will be defined if no components are specified. | 
        
          |  |  | 
        
          |  | IMPORTED Targets | 
        
          |  | ^^^^^^^^^^^^^^^^ | 
        
          |  |  | 
        
          |  | This module defines the :prop_tgt:`IMPORTED` targets: | 
        
          |  |  | 
        
          |  | ``PluginSDK::gta3`` | 
        
          |  | Defined to the libraries for GTA: III when component ``gta3`` is specified. | 
        
          |  | ``PluginSDK::gtavc`` | 
        
          |  | Defined to the libraries for GTA: Vice City when component ``gtavc`` is specified. | 
        
          |  | ``PluginSDK::gtasa`` | 
        
          |  | Defined to the libraries for GTA: San Andreas if component ``gtasa`` is specified. | 
        
          |  |  | 
        
          |  | Result Variables | 
        
          |  | ^^^^^^^^^^^^^^^^ | 
        
          |  |  | 
        
          |  | This module sets the following variables: | 
        
          |  |  | 
        
          |  | ``PluginSDK_FOUND`` | 
        
          |  | True, if the system has Plugin-SDK and all specified components are found. | 
        
          |  | ``PluginSDK_shared_INCLUDE_DIRS`` | 
        
          |  | Paths to the directories containing shared headers. | 
        
          |  | ``PluginSDK_gta3_FOUND`` | 
        
          |  | True, if all parts of the ``gta3`` component are found. | 
        
          |  | ``PluginSDK_gta3_INCLUDE_DIRS`` | 
        
          |  | Paths to the include directories of the ``gta3`` component. | 
        
          |  | ``PluginSDK_gta3_LIBRARIES`` | 
        
          |  | Paths to libraries of the ``gta3`` component. | 
        
          |  | ``PluginSDK_gtavc_FOUND`` | 
        
          |  | True, if all parts of the ``gtavc`` component are found. | 
        
          |  | ``PluginSDK_gtavc_INCLUDE_DIRS`` | 
        
          |  | Paths to the include directories of the ``gtavc`` component. | 
        
          |  | ``PluginSDK_gtavc_LIBRARIES`` | 
        
          |  | Paths to libraries of the ``gtavc`` component. | 
        
          |  | ``PluginSDK_gtasa_FOUND`` | 
        
          |  | True, if all parts of the ``gtasa`` component are found. | 
        
          |  | ``PluginSDK_gtasa_INCLUDE_DIRS`` | 
        
          |  | Paths to the include directories of the ``gtasa`` component. | 
        
          |  | ``PluginSDK_gtasa_LIBRARIES`` | 
        
          |  | Paths to libraries of the ``gtasa`` component. | 
        
          |  |  | 
        
          |  | Cache variables | 
        
          |  | ^^^^^^^^^^^^^^^ | 
        
          |  |  | 
        
          |  | The following cache variables may also be set: | 
        
          |  |  | 
        
          |  | ``PluginSDK_ROOT_DIR`` | 
        
          |  | Path to the Plugin-SDK root directory. | 
        
          |  | ``PluginSDK_shared_INCLUDE_DIR`` | 
        
          |  | Path to the Plugin-SDK shared headers root directory. | 
        
          |  | ``PluginSDK_gta3_LIBRARY`` | 
        
          |  | Path to the library of the ``gta3`` component selected for the given build configuration. | 
        
          |  | ``PluginSDK_gta3_LIBRARY_RELEASE`` | 
        
          |  | Path to the optimized library of the ``gta3`` component. | 
        
          |  | ``PluginSDK_gta3_LIBRARY_DEBUG`` | 
        
          |  | Path to the debug library of the ``gta3`` component. | 
        
          |  | ``PluginSDK_gtavc_LIBRARY`` | 
        
          |  | Path to the library of the ``gtavc`` component selected for the given build configuration. | 
        
          |  | ``PluginSDK_gtavc_LIBRARY_RELEASE`` | 
        
          |  | Path to the optimized library of the ``gtavc`` component. | 
        
          |  | ``PluginSDK_gtavc_LIBRARY_DEBUG`` | 
        
          |  | Path to the debug library of the ``gtavc`` component. | 
        
          |  | ``PluginSDK_gtasa_LIBRARY`` | 
        
          |  | Path to the library of the ``gtasa`` component selected for the given build configuration. | 
        
          |  | ``PluginSDK_gtasa_LIBRARY_RELEASE`` | 
        
          |  | Path to the optimized library of the ``gtasa`` component. | 
        
          |  | ``PluginSDK_gtasa_LIBRARY_DEBUG`` | 
        
          |  | Path to the debug library of the ``gtasa`` component. | 
        
          |  | #]=======================================================================] | 
        
          |  |  | 
        
          |  | include(FindPackageHandleStandardArgs) | 
        
          |  | include(SelectLibraryConfigurations) | 
        
          |  |  | 
        
          |  | find_path(PluginSDK_ROOT_DIR | 
        
          |  | NAMES "shared/PluginBase.h" | 
        
          |  | HINTS | 
        
          |  | "${PluginSDK_ROOT}" | 
        
          |  | ENV PLUGIN_SDK_DIR | 
        
          |  | NO_DEFAULT_PATH | 
        
          |  | ) | 
        
          |  |  | 
        
          |  | # Shared | 
        
          |  | find_path(PluginSDK_shared_INCLUDE_DIR | 
        
          |  | NAMES "PluginBase.h" | 
        
          |  | HINTS "${PluginSDK_ROOT_DIR}/shared" | 
        
          |  | NO_DEFAULT_PATH | 
        
          |  | ) | 
        
          |  | if(PluginSDK_shared_INCLUDE_DIR) | 
        
          |  | set(PluginSDK_shared_INCLUDE_DIRS "${PluginSDK_shared_INCLUDE_DIR}" "${PluginSDK_shared_INCLUDE_DIR}/game") | 
        
          |  | endif() | 
        
          |  |  | 
        
          |  | # GTA III | 
        
          |  | set(PluginSDK_gta3_REL_LIB_NAMES "plugin_iii") | 
        
          |  | set(PluginSDK_gta3_DBG_LIB_NAMES "plugin_iii_d") | 
        
          |  | set(PluginSDK_gta3_INC_NAMES "plugin_III.h") | 
        
          |  | set(PluginSDK_gta3_INCDIR_NAME "plugin_III") | 
        
          |  | set(PluginSDK_gta3_GAME_INCDIR_NAME "game_III") | 
        
          |  | set(PluginSDK_gta3_DEFINES | 
        
          |  | PLUGIN_SGV_10EN | 
        
          |  | GTA3 | 
        
          |  | GTAGAME_NAME="3" | 
        
          |  | GTAGAME_ABBR="3" | 
        
          |  | GTAGAME_ABBRLOW="3" | 
        
          |  | GTAGAME_PROTAGONISTNAME="Claude" | 
        
          |  | GTAGAME_CITYNAME="Liberty City" | 
        
          |  | ) | 
        
          |  |  | 
        
          |  | # GTA: VC | 
        
          |  | set(PluginSDK_gtavc_REL_LIB_NAMES "plugin_vc") | 
        
          |  | set(PluginSDK_gtavc_DBG_LIB_NAMES "plugin_vc_d") | 
        
          |  | set(PluginSDK_gtavc_INC_NAMES "plugin_vc.h") | 
        
          |  | set(PluginSDK_gtavc_INCDIR_NAME "plugin_vc") | 
        
          |  | set(PluginSDK_gtavc_GAME_INCDIR_NAME "game_vc") | 
        
          |  | set(PluginSDK_gtavc_DEFINES | 
        
          |  | PLUGIN_SGV_10EN | 
        
          |  | GTAVC | 
        
          |  | GTAGAME_NAME="Vice City" | 
        
          |  | GTAGAME_ABBR="VC" | 
        
          |  | GTAGAME_ABBRLOW="vc" | 
        
          |  | GTAGAME_PROTAGONISTNAME="Tommy" | 
        
          |  | GTAGAME_CITYNAME="Vice City" | 
        
          |  | ) | 
        
          |  |  | 
        
          |  | # GTA: SA | 
        
          |  | set(PluginSDK_gtasa_REL_LIB_NAMES "plugin" "plugin_sa") | 
        
          |  | set(PluginSDK_gtasa_DBG_LIB_NAMES "plugin_d" "plugin_sa_d") | 
        
          |  | set(PluginSDK_gtasa_INC_NAMES "plugin_sa.h") | 
        
          |  | set(PluginSDK_gtasa_INCDIR_NAME "plugin_sa") | 
        
          |  | set(PluginSDK_gtasa_GAME_INCDIR_NAME "game_sa") | 
        
          |  | set(PluginSDK_gtasa_DEFINES | 
        
          |  | PLUGIN_SGV_10US | 
        
          |  | GTASA | 
        
          |  | GTAGAME_NAME="San Andreas" | 
        
          |  | GTAGAME_ABBR="SA" | 
        
          |  | GTAGAME_ABBRLOW="sa" | 
        
          |  | GTAGAME_PROTAGONISTNAME="CJ" | 
        
          |  | GTAGAME_CITYNAME="San Andreas" | 
        
          |  | ) | 
        
          |  |  | 
        
          |  | foreach(comp_name ${PluginSDK_FIND_COMPONENTS}) | 
        
          |  | set(component PluginSDK_${comp_name}) | 
        
          |  | if(${component}_INC_NAMES) | 
        
          |  | find_path(${component}_INCLUDE_DIR | 
        
          |  | NAMES ${${component}_INC_NAMES} | 
        
          |  | HINTS "${PluginSDK_ROOT_DIR}/${${component}_INCDIR_NAME}" | 
        
          |  | NO_DEFAULT_PATH | 
        
          |  | ) | 
        
          |  | if(${component}_INCLUDE_DIR) | 
        
          |  | set(${component}_INCLUDE_DIRS "${${component}_INCLUDE_DIR}" "${${component}_INCLUDE_DIR}/${${component}_GAME_INCDIR_NAME}") | 
        
          |  | endif() | 
        
          |  |  | 
        
          |  | find_library(${component}_LIBRARY_RELEASE | 
        
          |  | NAMES ${${component}_REL_LIB_NAMES} | 
        
          |  | HINTS "${PluginSDK_ROOT_DIR}/output" | 
        
          |  | PATH_SUFFIXES "lib" | 
        
          |  | NO_DEFAULT_PATH | 
        
          |  | ) | 
        
          |  | find_library(${component}_LIBRARY_DEBUG | 
        
          |  | NAMES ${${component}_DBG_LIB_NAMES} | 
        
          |  | HINTS "${PluginSDK_ROOT_DIR}/output" | 
        
          |  | PATH_SUFFIXES "lib" | 
        
          |  | NO_DEFAULT_PATH | 
        
          |  | ) | 
        
          |  |  | 
        
          |  | select_library_configurations("${component}") | 
        
          |  | mark_as_advanced(${component}_INCLUDE_DIR) | 
        
          |  |  | 
        
          |  | set(target PluginSDK::${comp_name}) | 
        
          |  | if(${component}_FOUND AND NOT TARGET ${target}) | 
        
          |  | add_library(${target} STATIC IMPORTED) | 
        
          |  | target_include_directories(${target} | 
        
          |  | INTERFACE | 
        
          |  | "${${component}_INCLUDE_DIRS}" | 
        
          |  | "${PluginSDK_shared_INCLUDE_DIRS}" | 
        
          |  | ) | 
        
          |  | target_compile_definitions(${target} | 
        
          |  | INTERFACE | 
        
          |  | "_CRT_SECURE_NO_WARNINGS" | 
        
          |  | "_CRT_NON_CONFORMING_SWPRINTFS" | 
        
          |  | ${${component}_DEFINES} | 
        
          |  | ) | 
        
          |  | set_target_properties(${target} | 
        
          |  | PROPERTIES | 
        
          |  | IMPORTED_LOCATION "${${component}_LIBRARY_RELEASE}" | 
        
          |  | IMPORTED_LOCATION_DEBUG "${${component}_LIBRARY_DEBUG}" | 
        
          |  | ) | 
        
          |  | endif() | 
        
          |  | else() | 
        
          |  | message(FATAL_ERROR "Wrong component name: ${component}") | 
        
          |  | endif() | 
        
          |  | endforeach() | 
        
          |  |  | 
        
          |  | find_package_handle_standard_args("PluginSDK" REQUIRED_VARS PluginSDK_ROOT_DIR HANDLE_COMPONENTS) | 
        
          |  | mark_as_advanced(PluginSDK_ROOT_DIR PluginSDK_shared_INCLUDE_DIR) | 
  
I'm pretty sure everybody wants to use RenderWare classes etc, so basically add RW after GTAGAME_CITYNAME="San Andreas" and:
"${PluginSDK_ROOT_DIR}/${${component}_INCDIR_NAME}/${${component}_GAME_INCDIR_NAME}/rw"
It would be nice to just add to all games but IV but yes