192 lines
6.2 KiB
CMake
192 lines
6.2 KiB
CMake
cmake_minimum_required(VERSION 3.25)
|
|
project(spaceshooter)
|
|
|
|
set(STDCPP_LIB stdc++ -static)
|
|
|
|
set(PATH_ALLEGRO_STATIC "" CACHE PATH "Path to allegro static libs")
|
|
set(PATH_DEPS_STATIC "" CACHE PATH "Path to dependencies static libs")
|
|
|
|
include_directories("lib/" "network/" "objects/")
|
|
|
|
# STATIC LIBRARY ALLEGRO 5
|
|
# https://github.com/liballeg/allegro5/releases
|
|
|
|
add_library(allegro STATIC IMPORTED)
|
|
set_property(TARGET allegro PROPERTY IMPORTED_LOCATION "${PATH_ALLEGRO_STATIC}/liballegro-static.a")
|
|
add_library(allegro_primitives STATIC IMPORTED)
|
|
set_property(TARGET allegro_primitives PROPERTY IMPORTED_LOCATION "${PATH_ALLEGRO_STATIC}/liballegro_primitives-static.a")
|
|
add_library(allegro_dialog STATIC IMPORTED)
|
|
set_property(TARGET allegro_dialog PROPERTY IMPORTED_LOCATION "${PATH_ALLEGRO_STATIC}/liballegro_dialog-static.a")
|
|
add_library(allegro_image STATIC IMPORTED)
|
|
set_property(TARGET allegro_image PROPERTY IMPORTED_LOCATION "${PATH_ALLEGRO_STATIC}/liballegro_image-static.a")
|
|
add_library(allegro_font STATIC IMPORTED)
|
|
set_property(TARGET allegro_font PROPERTY IMPORTED_LOCATION "${PATH_ALLEGRO_STATIC}/liballegro_font-static.a")
|
|
add_library(allegro_ttf STATIC IMPORTED)
|
|
set_property(TARGET allegro_ttf PROPERTY IMPORTED_LOCATION "${PATH_ALLEGRO_STATIC}/liballegro_ttf-static.a")
|
|
add_library(allegro_audio STATIC IMPORTED)
|
|
set_property(TARGET allegro_audio PROPERTY IMPORTED_LOCATION "${PATH_ALLEGRO_STATIC}/liballegro_audio-static.a")
|
|
add_library(allegro_acodec STATIC IMPORTED)
|
|
set_property(TARGET allegro_acodec PROPERTY IMPORTED_LOCATION "${PATH_ALLEGRO_STATIC}/liballegro_acodec-static.a")
|
|
|
|
# DEPENDENCIES
|
|
# https://github.com/liballeg/allegro_winpkg/releases
|
|
|
|
add_library(dumb STATIC IMPORTED)
|
|
set_property(TARGET dumb PROPERTY IMPORTED_LOCATION "${PATH_DEPS_STATIC}/libdumb.a")
|
|
add_library(FLAC STATIC IMPORTED)
|
|
set_property(TARGET FLAC PROPERTY IMPORTED_LOCATION "${PATH_DEPS_STATIC}/libFLAC.a")
|
|
add_library(freetype STATIC IMPORTED)
|
|
set_property(TARGET freetype PROPERTY IMPORTED_LOCATION "${PATH_DEPS_STATIC}/libfreetype.a")
|
|
add_library(jpeg STATIC IMPORTED)
|
|
set_property(TARGET jpeg PROPERTY IMPORTED_LOCATION "${PATH_DEPS_STATIC}/libjpeg.a")
|
|
add_library(ogg STATIC IMPORTED)
|
|
set_property(TARGET ogg PROPERTY IMPORTED_LOCATION "${PATH_DEPS_STATIC}/libogg.a")
|
|
add_library(opus STATIC IMPORTED)
|
|
set_property(TARGET opus PROPERTY IMPORTED_LOCATION "${PATH_DEPS_STATIC}/libopus.a")
|
|
add_library(opusfile STATIC IMPORTED)
|
|
set_property(TARGET opusfile PROPERTY IMPORTED_LOCATION "${PATH_DEPS_STATIC}/libopusfile.a")
|
|
add_library(physfs STATIC IMPORTED)
|
|
set_property(TARGET physfs PROPERTY IMPORTED_LOCATION "${PATH_DEPS_STATIC}/libphysfs.a")
|
|
add_library(png16 STATIC IMPORTED)
|
|
set_property(TARGET png16 PROPERTY IMPORTED_LOCATION "${PATH_DEPS_STATIC}/libpng16.a")
|
|
add_library(theoradec STATIC IMPORTED)
|
|
set_property(TARGET theoradec PROPERTY IMPORTED_LOCATION "${PATH_DEPS_STATIC}/libtheoradec.a")
|
|
add_library(vorbis STATIC IMPORTED)
|
|
set_property(TARGET vorbis PROPERTY IMPORTED_LOCATION "${PATH_DEPS_STATIC}/libvorbis.a")
|
|
add_library(vorbisfile STATIC IMPORTED)
|
|
set_property(TARGET vorbisfile PROPERTY IMPORTED_LOCATION "${PATH_DEPS_STATIC}/libvorbisfile.a")
|
|
add_library(webp STATIC IMPORTED)
|
|
set_property(TARGET webp PROPERTY IMPORTED_LOCATION "${PATH_DEPS_STATIC}/libwebp.a")
|
|
add_library(webpdecoder STATIC IMPORTED)
|
|
set_property(TARGET webpdecoder PROPERTY IMPORTED_LOCATION "${PATH_DEPS_STATIC}/libwebpdecoder.a")
|
|
add_library(webpdemux STATIC IMPORTED)
|
|
set_property(TARGET webpdemux PROPERTY IMPORTED_LOCATION "${PATH_DEPS_STATIC}/libwebpdemux.a")
|
|
add_library(zlib STATIC IMPORTED)
|
|
set_property(TARGET zlib PROPERTY IMPORTED_LOCATION "${PATH_DEPS_STATIC}/libzlib.a")
|
|
|
|
# add_library(enet STATIC IMPORTED)
|
|
# set_property(TARGET enet PROPERTY IMPORTED_LOCATION "C:/msys64/mingw64/lib/libenet.a")
|
|
|
|
set(SRC_GAME
|
|
autors.c
|
|
common.c
|
|
data.c
|
|
gameover.c
|
|
main.c
|
|
menu.c
|
|
networkcreate.c
|
|
networkgame.c
|
|
networkjoin.c
|
|
networklist.c
|
|
networkmode.c
|
|
networkout.c
|
|
networkparty.c
|
|
pause.c
|
|
single.c)
|
|
|
|
set(SRC_LIB
|
|
lib/common.c
|
|
lib/event.c
|
|
lib/instance.c
|
|
lib/interface.c
|
|
lib/media.c
|
|
lib/message.c
|
|
lib/screen.c
|
|
lib/timer.c)
|
|
|
|
set(SRC_NETWORK network/network.c)
|
|
|
|
set(SRC_OBJECTS objects/objects.c)
|
|
|
|
set(ALLEGRO_LIB allegro)
|
|
set(ALLEGRO_PRIMITIVES_LIB allegro_primitives)
|
|
set(ALLEGRO_DIALOG_LIB allegro_dialog)
|
|
set(ALLEGRO_IMAGE_LIB allegro_image)
|
|
set(ALLEGRO_FONT_LIB allegro_font)
|
|
set(ALLEGRO_TTF_LIB allegro_ttf)
|
|
set(ALLEGRO_AUDIO_LIB allegro_audio)
|
|
set(ALLEGRO_ACODEC_LIB allegro_acodec)
|
|
|
|
# https://packages.msys2.org/package/mingw-w64-x86_64-enet?repo=mingw64
|
|
set(ENET_LIB enet)
|
|
|
|
find_library(WINMM_LIB winmm)
|
|
find_library(OPENGL32_LIB opengl32)
|
|
find_library(GDI32_LIB gdi32)
|
|
find_library(OLE32_LIB ole32)
|
|
find_library(SHLWAPI_LIB shlwapi)
|
|
find_library(DSOUND_LIB dsound)
|
|
find_library(WS2_32_LIB ws2_32)
|
|
|
|
set(FLAC_LIB FLAC)
|
|
set(OGG_LIB ogg)
|
|
set(VORBIS_LIB vorbis)
|
|
set(OPUS_LIB opus)
|
|
set(PNG16_LIB png16)
|
|
set(FREETYPE_LIB freetype)
|
|
set(JPEG_LIB jpeg)
|
|
set(WEBP_LIB webp)
|
|
set(DUMB_LIB dumb)
|
|
set(VORBISFILE_LIB vorbisfile)
|
|
set(OPUSFILE_LIB opusfile)
|
|
set(Z_LIB zlib)
|
|
|
|
set(PHYSFS_LIB physfs)
|
|
|
|
find_library(GDIPLUS_32_LIB gdiplus)
|
|
find_library(UUID_LIB uuid)
|
|
find_library(KERNEL32_LIB kernel32)
|
|
find_library(PSAPI_32_LIB psapi)
|
|
find_library(GLU32_32_LIB glu32)
|
|
find_library(USER32_LIB user32)
|
|
find_library(COMDLG32_LIB Comdlg32)
|
|
find_library(SHELL32_LIB shell32)
|
|
find_library(ADVAPI32_LIB advapi32)
|
|
|
|
add_executable(${PROJECT_NAME} WIN32 ${SRC_OBJECTS} ${SRC_LIB} ${SRC_NETWORK} ${SRC_GAME})
|
|
|
|
target_link_libraries(${PROJECT_NAME}
|
|
${ALLEGRO_PRIMITIVES_LIB}
|
|
${ALLEGRO_DIALOG_LIB}
|
|
${ALLEGRO_IMAGE_LIB}
|
|
${ALLEGRO_FONT_LIB}
|
|
${ALLEGRO_TTF_LIB}
|
|
${ALLEGRO_AUDIO_LIB}
|
|
${ALLEGRO_ACODEC_LIB}
|
|
${ALLEGRO_LIB}
|
|
|
|
${ENET_LIB}
|
|
|
|
${JPEG_LIB}
|
|
${DUMB_LIB}
|
|
${WEBP_LIB}
|
|
${FLAC_LIB}
|
|
${VORBISFILE_LIB}
|
|
${VORBIS_LIB}
|
|
${OGG_LIB}
|
|
${FREETYPE_LIB}
|
|
${PNG16_LIB}
|
|
${DSOUND_LIB}
|
|
${WINMM_LIB}
|
|
${OPENGL32_LIB}
|
|
${GDI32_LIB}
|
|
${OLE32_LIB}
|
|
${SHLWAPI_LIB}
|
|
${STDCPP_LIB}
|
|
${Z_LIB}
|
|
${OPUSFILE_LIB}
|
|
${OPUS_LIB}
|
|
${WS2_32_LIB}
|
|
|
|
# ${PHYSFS_LIB}
|
|
# ${GDIPLUS_32_LIB}
|
|
# ${UUID_LIB}
|
|
# ${KERNEL32_LIB}
|
|
# ${PSAPI_32_LIB}
|
|
# ${GLU32_32_LIB}
|
|
# ${USER32_LIB}
|
|
# ${COMDLG32_LIB}
|
|
# ${SHELL32_LIB}
|
|
# ${ADVAPI32_LIB}
|
|
)
|