1
0
mirror of https://github.com/blupi-games/planetblupi synced 2024-12-30 10:15:36 +01:00

Merge pull request #8 from blupi-games/issue/2-so

Add dynamic build support
This commit is contained in:
Mathieu Schroeter 2017-09-13 10:51:55 +02:00 committed by GitHub
commit 6abbab2d28

View File

@ -36,10 +36,14 @@ if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" OR "${CMAKE_CXX_COMPILER_ID}" ST
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -std=c++11 -L${CMAKE_INSTALL_PREFIX}/lib") set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -std=c++11 -L${CMAKE_INSTALL_PREFIX}/lib")
endif () endif ()
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" AND "${STATIC_BUILD}")
set (CMAKE_EXE_LINKER_FLAGS "-static-libgcc -static-libstdc++") set (CMAKE_EXE_LINKER_FLAGS "-static-libgcc -static-libstdc++")
endif () endif ()
if (NOT "${STATIC_BUILD}")
set (CMAKE_EXE_LINKER_FLAGS "-lpthread")
endif ()
if ("${CMAKE_BUILD_TYPE}" STREQUAL "Debug") if ("${CMAKE_BUILD_TYPE}" STREQUAL "Debug")
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g3") set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g3")
endif () endif ()
@ -94,61 +98,84 @@ endif (MINGW)
# Dependencies # Dependencies
set (CMAKE_INCLUDE_PATH ${CMAKE_INSTALL_PREFIX}/include) if ("${STATIC_BUILD}")
set (CMAKE_LIBRARY_PATH ${CMAKE_INSTALL_PREFIX}/lib) set (CMAKE_INCLUDE_PATH ${CMAKE_INSTALL_PREFIX}/include)
set (CMAKE_LIBRARY_PATH ${CMAKE_INSTALL_PREFIX}/lib)
endif ()
find_package (Intl REQUIRED) find_package (Intl REQUIRED)
include_directories (${Intl_INCLUDE_DIRS})
find_package (Iconv REQUIRED) find_package (Iconv REQUIRED)
include_directories (${Iconv_INCLUDE_DIRS})
find_package (Argagg REQUIRED) find_package (Argagg REQUIRED)
include_directories (${Argagg_INCLUDE_DIRS})
find_package (SDLKitchensink REQUIRED) find_package (SDLKitchensink REQUIRED)
include_directories (${SDLKitchensink_INCLUDE_DIRS})
find_package (PkgConfig REQUIRED) find_package (PkgConfig REQUIRED)
pkg_search_module (SDL2 REQUIRED sdl2) pkg_search_module (SDL2 REQUIRED sdl2)
pkg_search_module (SDL2_MIXER REQUIRED SDL2_mixer) pkg_search_module (SDL2_MIXER REQUIRED SDL2_mixer)
pkg_search_module (SDL2_IMAGE REQUIRED SDL2_image) pkg_search_module (SDL2_IMAGE REQUIRED SDL2_image)
pkg_search_module (CURL REQUIRED libcurl) pkg_search_module (CURL REQUIRED libcurl)
# Static dependencies for SDL_kitchensink
pkg_search_module (PNG REQUIRED libpng)
pkg_search_module (AVCODEC REQUIRED libavcodec)
pkg_search_module (AVFORMAT REQUIRED libavformat)
pkg_search_module (AVUTIL REQUIRED libavutil)
pkg_search_module (SWSCALE REQUIRED libswscale)
pkg_search_module (SWRESAMPLE REQUIRED libswresample)
if (UNIX AND NOT APPLE) if ("${STATIC_BUILD}")
pkg_search_module (ALSA REQUIRED alsa) pkg_search_module (PNG REQUIRED libpng)
pkg_search_module (PULSE REQUIRED libpulse) # Static dependencies for SDL_kitchensink
pkg_search_module (AVCODEC REQUIRED libavcodec)
pkg_search_module (AVFORMAT REQUIRED libavformat)
pkg_search_module (AVUTIL REQUIRED libavutil)
pkg_search_module (SWSCALE REQUIRED libswscale)
pkg_search_module (SWRESAMPLE REQUIRED libswresample)
if (UNIX AND NOT APPLE)
pkg_search_module (ALSA REQUIRED alsa)
pkg_search_module (PULSE REQUIRED libpulse)
endif ()
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DCURL_STATICLIB")
endif () endif ()
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DCURL_STATICLIB")
########################### ###########################
## Main binary dependencies ## Main binary dependencies
########################### ###########################
add_executable (planetblupi ${sources}) add_executable (planetblupi ${sources})
set (planetblupi_DEPS if ("${STATIC_BUILD}")
${Intl_LIBRARIES} set (planetblupi_DEPS
${Iconv_LIBRARIES} ${Intl_LIBRARIES}
${SDL2_STATIC_LIBRARIES} ${Iconv_LIBRARIES}
${SDL2_MIXER_STATIC_LIBRARIES} ${SDL2_STATIC_LIBRARIES}
${SDL2_IMAGE_STATIC_LIBRARIES} ${SDL2_MIXER_STATIC_LIBRARIES}
${CURL_STATIC_LIBRARIES} ${SDL2_IMAGE_STATIC_LIBRARIES}
${SDLKitchensink_STATIC_LIBRARIES} ${CURL_STATIC_LIBRARIES}
${PNG_STATIC_LIBRARIES} ${SDLKitchensink_STATIC_LIBRARIES}
${AVCODEC_STATIC_LIBRARIES} ${PNG_STATIC_LIBRARIES}
${AVFORMAT_STATIC_LIBRARIES} ${AVCODEC_STATIC_LIBRARIES}
${AVUTIL_STATIC_LIBRARIES} ${AVFORMAT_STATIC_LIBRARIES}
${SWSCALE_STATIC_LIBRARIES} ${AVUTIL_STATIC_LIBRARIES}
${SWRESAMPLE_STATIC_LIBRARIES} ${SWSCALE_STATIC_LIBRARIES}
) ${SWRESAMPLE_STATIC_LIBRARIES}
)
if (UNIX AND NOT APPLE)
list (APPEND planetblupi_DEPS if (UNIX AND NOT APPLE)
${ALSA_STATIC_LIBRARIES} list (APPEND planetblupi_DEPS
${PULSE_STATIC_LIBRARIES} ${ALSA_STATIC_LIBRARIES}
${PULSE_STATIC_LIBRARIES}
)
set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -L${CMAKE_INSTALL_PREFIX}/lib/pulseaudio")
endif ()
else ()
set (planetblupi_DEPS
${SDL2_LIBRARIES}
${SDL2_MIXER_LIBRARIES}
${SDL2_IMAGE_LIBRARIES}
${CURL_LIBRARIES}
${SDLKitchensink_LIBRARIES}
) )
set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -L${CMAKE_INSTALL_PREFIX}/lib/pulseaudio")
endif () endif ()
target_link_libraries (planetblupi PUBLIC ${planetblupi_DEPS}) target_link_libraries (planetblupi PUBLIC ${planetblupi_DEPS})
@ -231,7 +258,7 @@ endif ()
## Deploy ## Deploy
######### #########
if ("${CMAKE_BUILD_TYPE}" STREQUAL "Release") if ("${CMAKE_BUILD_TYPE}" STREQUAL "Release" AND "${STATIC_BUILD}")
# set (CPACK_STRIP_FILES TRUE) # set (CPACK_STRIP_FILES TRUE)
set (CPACK_PACKAGE_NAME ${PB_PACKAGE_NAME}) set (CPACK_PACKAGE_NAME ${PB_PACKAGE_NAME})
set (CPACK_PACKAGE_VENDOR "blupi.org") set (CPACK_PACKAGE_VENDOR "blupi.org")