################################################################################ # Build Test.asi # A testing plugin for the menu, recompiling the whole menu is tedious ################################################################################ cmake_minimum_required(VERSION 3.0) project(Test) ################################################################################ # Target ################################################################################ set(test_files "Test.cpp" ) add_library(${PROJECT_NAME} SHARED ${test_files}) string(CONCAT "MSVC_RUNTIME_LIBRARY_STR" $<$: MultiThreaded > $<$: MultiThreadedDebug > ) set_target_properties(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${GTA_SA_DIR}/$<0:>/" SUFFIX ".asi" MSVC_RUNTIME_LIBRARY ${MSVC_RUNTIME_LIBRARY_STR} ) ################################################################################ # Include directories ################################################################################ include_directories( "${PLUGIN_SDK_DIR}/plugin_sa" "${PLUGIN_SDK_DIR}/plugin_sa/game_sa" "${PLUGIN_SDK_DIR}/shared" "${PLUGIN_SDK_DIR}/shared/game" ) ################################################################################ # Compile definitions ################################################################################ target_compile_definitions(${PROJECT_NAME} PRIVATE "$<$:" "_NDEBUG" ">" "$<$:" "_DEBUG" ">" "_CRT_SECURE_NO_WARNINGS;" "_CRT_NON_CONFORMING_SWPRINTFS;" "GTASA;" "GTAGAME_NAME=\"San Andreas\";" "GTAGAME_ABBR=\"SA\";" "GTAGAME_ABBRLOW=\"sa\";" "GTAGAME_PROTAGONISTNAME=\"CJ\";" "GTAGAME_CITYNAME=\"San Andreas\";" "_LA_SUPPORT;" "_DX9_SDK_INSTALLED;" "PLUGIN_SGV_10US;" "_MBCS" "IS_PLATFORM_WIN" ) ################################################################################ # Compile and link options ################################################################################ target_compile_options(${PROJECT_NAME} PRIVATE $<$: /O2; /Oi; /Gy > $<$: /Od /DEBUG:FULL > /std:c++latest; /sdl-; /W3; ${DEFAULT_CXX_DEBUG_INFORMATION_FORMAT}; ${DEFAULT_CXX_EXCEPTION_HANDLING} /w44005 ) string(CONCAT FILE_CL_OPTIONS "/Y-" ) target_link_options(${PROJECT_NAME} PRIVATE $<$: /OPT:REF; /LTCG; /OPT:ICF; > $<$: /DEBUG:FULL; /SAFESEH:NO; > /SUBSYSTEM:WINDOWS ) ################################################################################ # Pre build events ################################################################################ add_custom_command( TARGET ${PROJECT_NAME} PRE_BUILD COMMAND taskkill /f /fi "imagename eq gta_sa.exe" ) ################################################################################ # Dependencies ################################################################################ target_link_libraries(${PROJECT_NAME} PUBLIC optimized plugin debug plugin_d ) target_link_directories(${PROJECT_NAME} PUBLIC "$ENV{PLUGIN_SDK_DIR}/output/lib/" "$<$:" "vendor/Release/" ">" "$<$:" "vendor/Debug/" ">") target_link_libraries(${PROJECT_NAME} PUBLIC optimized plugin debug plugin_d )