Prepare for release002, not tested yet though
This commit is contained in:
1 parent
3d3522b905
commit
a743f653dd
4 files changed
+33
-42
No files matched your search
+28
-20
@@ -1,6 +1,11 @@
|
||||
cmake_minimum_required(VERSION 3.16)
|
||||
|
||||
project(witcher001 LANGUAGES C CXX)
|
||||
project(ShadowOverBishkekDemo LANGUAGES C CXX)
|
||||
|
||||
if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
|
||||
message(STATUS "Setting build type to 'Release' as none was specified.")
|
||||
set(CMAKE_BUILD_TYPE "Release" CACHE STRING "Choose the type of build." FORCE)
|
||||
endif()
|
||||
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
@@ -64,9 +69,9 @@ endif()
|
||||
|
||||
|
||||
# ===========================================
|
||||
# Основной проект witcher001
|
||||
# Основной проект ShadowOverBishkekDemo
|
||||
# ===========================================
|
||||
add_executable(witcher001
|
||||
add_executable(ShadowOverBishkekDemo
|
||||
../src/main.cpp
|
||||
../src/Game.cpp
|
||||
../src/Game.h
|
||||
@@ -160,7 +165,7 @@ add_executable(witcher001
|
||||
)
|
||||
|
||||
# include-пути проекта
|
||||
target_include_directories(witcher001 PRIVATE
|
||||
target_include_directories(ShadowOverBishkekDemo PRIVATE
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/../src"
|
||||
${SDL2_INCLUDE_DIRS}
|
||||
${SDL2_TTF_INCLUDE_DIRS}
|
||||
@@ -173,13 +178,13 @@ target_include_directories(witcher001 PRIVATE
|
||||
)
|
||||
|
||||
# Убираем WIN32_LEAN_AND_MEAN
|
||||
target_compile_definitions(witcher001 PRIVATE
|
||||
target_compile_definitions(ShadowOverBishkekDemo PRIVATE
|
||||
PNG_ENABLED
|
||||
SDL_MAIN_HANDLED
|
||||
)
|
||||
|
||||
# Линковка директорий для pkg-config (если пакеты не в /usr/lib)
|
||||
target_link_directories(witcher001 PRIVATE
|
||||
target_link_directories(ShadowOverBishkekDemo PRIVATE
|
||||
${SDL2_LIBRARY_DIRS}
|
||||
${SDL2_TTF_LIBRARY_DIRS}
|
||||
${SDL2_MIXER_LIBRARY_DIRS}
|
||||
@@ -188,7 +193,7 @@ target_link_directories(witcher001 PRIVATE
|
||||
)
|
||||
|
||||
# Линковка библиотек
|
||||
target_link_libraries(witcher001 PRIVATE
|
||||
target_link_libraries(ShadowOverBishkekDemo PRIVATE
|
||||
OpenGL::GL
|
||||
OpenGL::GLU
|
||||
ZLIB::ZLIB
|
||||
@@ -209,11 +214,11 @@ target_link_libraries(witcher001 PRIVATE
|
||||
if(STEAMSDK)
|
||||
message(STATUS "Steamworks SDK integration is ENABLED.")
|
||||
|
||||
target_compile_definitions(witcher001 PRIVATE STEAMSDK)
|
||||
target_compile_definitions(ShadowOverBishkekDemo PRIVATE STEAMSDK)
|
||||
|
||||
set(STEAM_SDK_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../thirdparty/steamworks_sdk_164/sdk")
|
||||
|
||||
target_include_directories(witcher001 PRIVATE
|
||||
target_include_directories(ShadowOverBishkekDemo PRIVATE
|
||||
"${STEAM_SDK_DIR}/public"
|
||||
"${STEAM_SDK_DIR}/public/steam"
|
||||
)
|
||||
@@ -229,7 +234,7 @@ if(STEAMSDK)
|
||||
)
|
||||
|
||||
if(STEAM_LIBRARY)
|
||||
target_link_libraries(witcher001 PRIVATE ${STEAM_LIBRARY})
|
||||
target_link_libraries(ShadowOverBishkekDemo PRIVATE ${STEAM_LIBRARY})
|
||||
message(STATUS "Found Steam API library: ${STEAM_LIBRARY}")
|
||||
else()
|
||||
message(FATAL_ERROR "Steam API library (${STEAM_LIB_NAME}) NOT found in ${STEAM_LIB_DIR}!")
|
||||
@@ -245,32 +250,35 @@ endif()
|
||||
# ===========================================
|
||||
|
||||
# Указываем линкеру искать .so файлы в той же папке, где лежит бинарник ($ORIGIN)
|
||||
set_target_properties(witcher001 PROPERTIES
|
||||
set_target_properties(ShadowOverBishkekDemo PROPERTIES
|
||||
INSTALL_RPATH "$ORIGIN"
|
||||
BUILD_WITH_INSTALL_RPATH TRUE
|
||||
)
|
||||
|
||||
#FIXING BUILD BUG
|
||||
set(LUA_SO_DIR "/usr/lib/x86_64-linux-gnu/")
|
||||
set (LIBZIP_SO_DIR "/usr/lib/x86_64-linux-gnu/")
|
||||
# Поиск директорий, где лежат библиотеки
|
||||
get_filename_component(LUA_SO_DIR ${LUA_SO_PATH} DIRECTORY)
|
||||
get_filename_component(LIBZIP_SO_DIR ${LIBZIP_SO_PATH} DIRECTORY)
|
||||
#get_filename_component(LUA_SO_DIR ${LUA_SO_PATH} DIRECTORY)
|
||||
#get_filename_component(LIBZIP_SO_DIR ${LIBZIP_SO_PATH} DIRECTORY)
|
||||
|
||||
add_custom_command(TARGET witcher001 POST_BUILD
|
||||
add_custom_command(TARGET ShadowOverBishkekDemo POST_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E echo "Copying shared libraries with sonames..."
|
||||
# Копируем библиотеки и все их симлинки (cp -P сохраняет структуру симлинков)
|
||||
COMMAND sh -c "cp -P ${LUA_SO_DIR}/liblua5.4.so* '$<TARGET_FILE_DIR:witcher001>/'"
|
||||
COMMAND sh -c "cp -P ${LIBZIP_SO_DIR}/libzip.so* '$<TARGET_FILE_DIR:witcher001>/'"
|
||||
COMMAND sh -c "cp -P ${LUA_SO_DIR}/liblua5.4.so* '$<TARGET_FILE_DIR:ShadowOverBishkekDemo>/'"
|
||||
COMMAND sh -c "cp -P ${LIBZIP_SO_DIR}/libzip.so* '$<TARGET_FILE_DIR:ShadowOverBishkekDemo>/'"
|
||||
)
|
||||
|
||||
# Если включен Steam, копируем libsteam_api.so и steam_appid.txt
|
||||
if(STEAMSDK)
|
||||
add_custom_command(TARGET witcher001 POST_BUILD
|
||||
add_custom_command(TARGET ShadowOverBishkekDemo POST_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E echo "Copying Steam SDK components..."
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different
|
||||
"${STEAM_LIB_DIR}/${STEAM_SO_NAME}"
|
||||
"$<TARGET_FILE_DIR:witcher001>/${STEAM_SO_NAME}"
|
||||
"$<TARGET_FILE_DIR:ShadowOverBishkekDemo>/${STEAM_SO_NAME}"
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/steam_appid.txt"
|
||||
"$<TARGET_FILE_DIR:witcher001>/steam_appid.txt"
|
||||
"$<TARGET_FILE_DIR:ShadowOverBishkekDemo>/steam_appid.txt"
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/steam_appid.txt"
|
||||
"${CMAKE_BINARY_DIR}/steam_appid.txt"
|
||||
@@ -286,7 +294,7 @@ set(RUNTIME_RESOURCE_DIRS
|
||||
)
|
||||
|
||||
foreach(resdir IN LISTS RUNTIME_RESOURCE_DIRS)
|
||||
add_custom_command(TARGET witcher001 POST_BUILD
|
||||
add_custom_command(TARGET ShadowOverBishkekDemo POST_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E echo "Copying ${resdir} to binary dir..."
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory
|
||||
"${CMAKE_SOURCE_DIR}/../${resdir}"
|
||||
|
||||
Reference in new issue
Block a user