# HG changeset patch # User koda # Date 1352261886 -3600 # Node ID 706218709157bdad0fb377ee8b77b698aa05035d # Parent 0b7dc27b2baff84581ee517a3b67cb293a5dfabc# Parent a5f0a6d46c529a1ea57ac60ddae94e09dcd746d8 merge diff -r 0b7dc27b2baf -r 706218709157 CMakeLists.txt --- a/CMakeLists.txt Tue Nov 06 20:28:15 2012 -0500 +++ b/CMakeLists.txt Wed Nov 07 05:18:06 2012 +0100 @@ -57,7 +57,7 @@ option(ANDROID "Enable Android build [default: off]" OFF) option(NOAUTOUPDATE "Disable OS X Sparkle update checking" OFF) option(CROSSAPPLE "Enable OSX when not on OSX [default: off]" OFF) - +option(MINIMAL_FLAGS "Respect system flags as much as possible [default: off]" OFF) #bundle .app setup if(APPLE OR CROSSAPPLE) @@ -157,14 +157,21 @@ set (CMAKE_BUILD_TYPE ${default_build_type} CACHE STRING "Choose the build type, options are: Debug Release." FORCE) endif (CMAKE_BUILD_TYPE) - -#set default flags values for all projects -set(CMAKE_C_FLAGS "-pipe ${CMAKE_C_FLAGS}") -set(CMAKE_C_FLAGS_RELEASE "-w -Os -fomit-frame-pointer ${CMAKE_C_FLAGS_RELEASE}") -set(CMAKE_C_FLAGS_DEBUG "-Wall -O0 -g -DDEBUG ${CMAKE_C_FLAGS_DEBUG}") -set(CMAKE_CXX_FLAGS ${CMAKE_C_FLAGS}) -set(CMAKE_CXX_FLAGS_RELEASE ${CMAKE_C_FLAGS_RELEASE}) -set(CMAKE_CXX_FLAGS_DEBUG ${CMAKE_C_FLAGS_DEBUG}) +#set default flags values for all projects (unless MINIMAL_FLAGS is true) +if(NOT MINIMAL_FLAGS) + set(CMAKE_C_FLAGS "-pipe") + set(CMAKE_C_FLAGS_RELEASE "-w -Os -fomit-frame-pointer") + set(CMAKE_C_FLAGS_DEBUG "-Wall -O0 -g -DDEBUG") + set(CMAKE_CXX_FLAGS ${CMAKE_C_FLAGS}) + set(CMAKE_CXX_FLAGS_RELEASE ${CMAKE_C_FLAGS_RELEASE}) + set(CMAKE_CXX_FLAGS_DEBUG ${CMAKE_C_FLAGS_DEBUG}) +else() + #CMake adds a lot of additional configuration flags, so let's clear them up + set(CMAKE_C_FLAGS_RELEASE "") + set(CMAKE_C_FLAGS_DEBUG "-Wall -DDEBUG") + set(CMAKE_CXX_FLAGS_RELEASE "") + set(CMAKE_CXX_FLAGS_DEBUG "-Wall -DDEBUG") +endif() #parse additional parameters if(FPFLAGS OR GHFLAGS) diff -r 0b7dc27b2baf -r 706218709157 INSTALL --- a/INSTALL Tue Nov 06 20:28:15 2012 -0500 +++ b/INSTALL Wed Nov 07 05:18:06 2012 +0100 @@ -13,6 +13,9 @@ - bytestring-show package - dataenc package - hslogger package +For videorecording: + - FFmpeg or LibAV + - GLUT (when SDL < 2) 1. Configure: $ cmake . diff -r 0b7dc27b2baf -r 706218709157 hedgewars/CMakeLists.txt --- a/hedgewars/CMakeLists.txt Tue Nov 06 20:28:15 2012 -0500 +++ b/hedgewars/CMakeLists.txt Wed Nov 07 05:18:06 2012 +0100 @@ -193,7 +193,14 @@ #this command is a workaround to some inlining issues present in older FreePascal versions and fixed in 2.6 if(fpc_version LESS "020600") - add_custom_target(ENGINECLEAN COMMAND ${CMAKE_BUILD_TOOL} "clean" "${PROJECT_BINARY_DIR}" "${hedgewars_SOURCE_DIR}/hedgewars") + #under some configurations CMAKE_BUILD_TOOL fails to pass on the jobserver, breaking parallel compilation + #TODO: check if this is needed on windows too + if(UNIX) + set(SAFE_BUILD_TOOL $(MAKE)) + else() + set(SAFE_BUILD_TOOL ${CMAKE_BUILD_TOOL}) + endif() + add_custom_target(ENGINECLEAN COMMAND ${SAFE_BUILD_TOOL} "clean" "${PROJECT_BINARY_DIR}" "${hedgewars_SOURCE_DIR}/hedgewars") endif() @@ -201,6 +208,11 @@ set(FFMPEG_FIND_QUIETLY true) find_package(FFMPEG) if(${FFMPEG_FOUND}) + # TODO: this check is only for SDL < 2 + # fpc will take care of linking but we need to have this library installed + find_package(GLUT REQUIRED) + + #TODO: convert avwrapper to .pas unit so we can skip this step include_directories(${FFMPEG_INCLUDE_DIR}) set(pascal_flags "-dUSE_VIDEO_RECORDING" ${pascal_flags}) IF (WIN32) @@ -212,9 +224,6 @@ add_library(avwrapper STATIC avwrapper.c) set(pascal_flags "-k${FFMPEG_LIBAVCODEC}" "-k${FFMPEG_LIBAVFORMAT}" "-k${FFMPEG_LIBAVUTIL}" ${pascal_flags}) ENDIF() - if(fpc_version LESS "020600") - add_dependencies(avwrapper ENGINECLEAN) - endif() else() message(STATUS "Could NOT find FFMPEG/LibAV, video recording will be disabled") endif() @@ -260,6 +269,12 @@ add_dependencies(${engine_output_name} lua) endif() +#when ffmpeg/libav is found we need to compile it before engine +#TODO: convert avwrapper to .pas unit so we can skip this step +if(${FFMPEG_FOUND}) + add_dependencies(${engine_output_name} avwrapper) +endif() + #this command is a workaround to some inlining issues present in older FreePascal versions and fixed in 2.6 if((fpc_version LESS "020600") AND (NOVIDEOREC OR NOT ${FFMPEG_FOUND})) add_dependencies(${engine_output_name} ENGINECLEAN) diff -r 0b7dc27b2baf -r 706218709157 share/hedgewars/Data/Locale/fr.lua --- a/share/hedgewars/Data/Locale/fr.lua Tue Nov 06 20:28:15 2012 -0500 +++ b/share/hedgewars/Data/Locale/fr.lua Wed Nov 07 05:18:06 2012 +0100 @@ -253,7 +253,6 @@ ["Get that crate!"] = "Prends cette caisse", ["Get the crate on the other side of the island!|"] = "Prends la caisse de l'autre côté de l'île !", -- ["Get to the target using your rope! |Controls: Left & Right to swing the rope - Up & Down to Contract and Expand!"] = "", -- Basic_Training_-_Rope - ["Get your teammates out of their natural prison and save the princess!|Hint: Drilling holes should solve everything.|Hint: It might be a good idea to place a girder before starting to drill. Just saying.| Hint: All your hedgehogs need to be above the marked height!|Hint: Leaks A Lot needs to get really close to the princess!"] -- ["Get your teammates out of their natural prison and save the princess!|Hint: Drilling holes should solve everything.|Hint: It might be a good idea to place a girder before starting to drill. Just saying.|Hint: All your hedgehogs need to be above the marked height!|Hint: Leaks A Lot needs to get really close to the princess!"] = "", -- A_Classic_Fairytale:family -- ["GG!"] = "", -- User_Mission_-_Rope_Knock_Challenge -- ["Gimme Bones"] = "",