git repos / blockattack-game

commit 2c2c318c

sago007 · 2016-01-17 15:17
2c2c318c141f6a27481aaf62ea7a815d83226b4b patch · browse files
parent 5614ab556fa702f7258c2e072ac4b97e8daf450d

Added install commands. Not tested yet

Changed files

M CMakeLists.txt before
D man/SConscript before
M source/misc/blockattack.desktop before
diff --git a/CMakeLists.txt b/CMakeLists.txt index 33cfe28..40e44e4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt
@@ -4,40 +4,49 @@ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${blockattack_SOURCE_DIR}/source/mis
set(BIN_DIR ${blockattack_SOURCE_DIR}/Game)
# Define install paths
-set(INSTALL_BINARY_DIR "${CMAKE_INSTALL_PREFIX}/bin" CACHE STRING "Install executable in this directory")
+set(INSTALL_BIN_DIR "${CMAKE_INSTALL_PREFIX}/bin" CACHE STRING "Install executable in this directory")
set(INSTALL_DATA_DIR "${CMAKE_INSTALL_PREFIX}/share/blockattack" CACHE STRING "Install data to this directory")
set(INSTALL_MAN_DIR "${CMAKE_INSTALL_PREFIX}/share/man" CACHE STRING "Install the man page to this directory")
+set(INSTALL_APPLICATIONS_DIR "${CMAKE_INSTALL_PREFIX}/share/applications" CACHE STRING "Install the .desktop file to this directory")
+set(INSTALL_ICONS_DIR "${CMAKE_INSTALL_PREFIX}/share/icons/hicolor" CACHE STRING "Install the icon in a subfolder in this directory")
+
+#The path to the data dir must be compiled into the binary
+add_definitions(-DSHAREDIR=\"${INSTALL_DATA_DIR}\")
#Compiler options
-set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -std=c++11")
+set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wno-sign-compare -std=c++11")
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_DEBUG} -g")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_RELEASE} -O2")
-
-
-
-
+#Setup SDL2
find_package(SDL2 REQUIRED)
include_directories(${SDL2_INCLUDE_DIR})
+#Setup things that use pkg-config
find_package(PkgConfig REQUIRED)
pkg_search_module(SDL2MIXER REQUIRED SDL2_mixer)
pkg_search_module(SDL2IMAGE REQUIRED SDL2_image)
pkg_search_module(SDL2TTF REQUIRED SDL2_ttf)
-#string(REPLACE ";" " " SDL2EXTRA_LDFLAGS "${SDL2EXTRA_LDFLAGS}")
-#string(REPLACE ";" " " SDL2EXTRA_LIBRARIES "${SDL2EXTRA_LIBRARIES}")
-#string(REPLACE ";" " " SDL2MIXER_LDFLAGS "${SDL2MIXER_LDFLAGS}")
-#string(REPLACE ";" " " SDL2IMAGE_LIBRARIES "${SDL2IMAGE_LIBRARIES}")
-#string(REPLACE ";" " " SDL2TTF_LIBRARIES "${SDL2TTF_LIBRARIES}")
-#SET( CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${SDL2MIXER_LDFLAGS}" )
+#Find all sources but one
file(GLOB SOURCES "source/code/*.cpp" "source/code/*/*.cpp")
#I am still trying to get BlockGame to compile as a source file
list(REMOVE_ITEM SOURCES "${blockattack_SOURCE_DIR}/source/code/BlockGame.cpp")
+
+#Some messages to figure out what cmake does
message("${SOURCES}")
message("${CMAKE_EXE_LINKER_FLAGS}")
+
+#building/compiling/linking
add_executable(blockattack ${SOURCES})
target_link_libraries( blockattack ${SDL2_LIBRARY})
target_link_libraries( blockattack physfs jsoncpp)
target_link_libraries( blockattack ${SDL2MIXER_LIBRARIES} ${SDL2IMAGE_LIBRARIES} ${SDL2TTF_LIBRARIES})
set_target_properties( blockattack PROPERTIES RUNTIME_OUTPUT_DIRECTORY Game)
+
+#Installing
+install(TARGETS blockattack RUNTIME DESTINATION ${INSTALL_BIN_DIR} )
+install(FILES Game/blockattack.data DESTINATION ${INSTALL_DATA_DIR} )
+install(FILES man/blockattack.6.gz DESTINATION ${INSTALL_MAN_DIR} )
+install(FILES source/misc/blockattack.desktop DESTINATION ${INSTALL_APPLICATIONS_DIR} )
+install(FILES Game/data/textures/yellow.png DESTINATION "${INSTALL_ICONS_DIR}/50x50" )
diff --git a/man/SConscript b/man/SConscript deleted file mode 100644 index d03c340..0000000 --- a/man/SConscript +++ /dev/null
@@ -1,8 +0,0 @@
-#-------------#
-# Import Vars #
-#-------------#
-Import('*')
-
-env.Install ('$destdir/$mandir/man6/','blockattack.6.gz')
-env.Alias('install', '$destdir/$mandir/man6/')
-
diff --git a/source/misc/blockattack.desktop b/source/misc/blockattack.desktop index 8903e77..7986b46 100644 --- a/source/misc/blockattack.desktop +++ b/source/misc/blockattack.desktop
@@ -5,9 +5,11 @@ Comment=Switch blocks so they match
Comment[ro_RO]=Ridicarea blocurilor
Comment[da_DK]=Byt blokke så de passer sammen
Comment[fr_FR]=Empilez les blocks
+Comment[de]=Staple zusammenpassende Spielsteine
GenericName=Block Attack
Exec=blockattack
-Icon=blockattack32
+Icon=blockattack
Terminal=false
Type=Application
Categories=Game;ArcadeGame;
+Keywords=blocks;attack;tetris;