hedgewars/CMakeLists.txt
changeset 7615 b39beffcf05e
parent 7592 cf67e58313ea
parent 7540 cc6c656f70b5
child 7618 4d3a32d91028
equal deleted inserted replaced
7614:3ae60c8a15f2 7615:b39beffcf05e
     1 find_package(SDL)
     1 find_package(SDL)
     2 find_package(SDL_image)
     2 find_package(SDL_image)
     3 find_package(SDL_net)
     3 find_package(SDL_net)
     4 find_package(SDL_ttf)
     4 find_package(SDL_ttf)
     5 find_package(SDL_mixer)
     5 find_package(SDL_mixer)
       
     6 find_package(FFMPEG)
     6 
     7 
     7 include(${CMAKE_MODULE_PATH}/FindSDL_Extras.cmake)
     8 include(${CMAKE_MODULE_PATH}/FindSDL_Extras.cmake)
     8 
     9 
     9 configure_file(${hedgewars_SOURCE_DIR}/hedgewars/config.inc.in ${CMAKE_CURRENT_BINARY_DIR}/config.inc)
    10 configure_file(${hedgewars_SOURCE_DIR}/hedgewars/config.inc.in ${CMAKE_CURRENT_BINARY_DIR}/config.inc)
    10 
    11 
    60     uTeams.pas
    61     uTeams.pas
    61     uTextures.pas
    62     uTextures.pas
    62     uTypes.pas
    63     uTypes.pas
    63     uUtils.pas
    64     uUtils.pas
    64     uVariables.pas
    65     uVariables.pas
       
    66     uVideoRec.pas
    65     uVisualGears.pas
    67     uVisualGears.pas
    66     uWorld.pas
    68     uWorld.pas
    67     GSHandlers.inc
    69     GSHandlers.inc
    68     VGSHandlers.inc
    70     VGSHandlers.inc
    69     ArgParsers.inc
    71     ArgParsers.inc
   183     endif()
   185     endif()
   184 else()
   186 else()
   185     message(STATUS "PNG screenshots disabled per user request, using BMP format")
   187     message(STATUS "PNG screenshots disabled per user request, using BMP format")
   186 endif()
   188 endif()
   187 
   189 
       
   190 if(NOT NO_VIDEOREC)
       
   191     if(${FFMPEG_FOUND})
       
   192         message(STATUS "Compiling with video recording")
       
   193         include_directories(${FFMPEG_INCLUDE_DIR})
       
   194         set(pascal_flags "-dUSE_VIDEO_RECORDING" ${pascal_flags})
       
   195         set(LIBRARY_OUTPUT_PATH ${EXECUTABLE_OUTPUT_PATH})
       
   196         IF (WIN32)
       
   197             # there are some problems with linking our avwrapper as static lib, so link it as shared
       
   198             add_library(avwrapper SHARED avwrapper.c)
       
   199             target_link_libraries(avwrapper ${FFMPEG_LIBRARIES})
       
   200         ELSE()
       
   201             add_library(avwrapper STATIC avwrapper.c)
       
   202             set(pascal_flags "-k${FFMPEG_LIBAVCODEC} ${FFMPEG_LIBAVFORMAT} ${FFMPEG_LIBAVUTIL}" ${pascal_flags})
       
   203          #   set(pascal_flags "-k${LIBRARY_OUTPUT_PATH}/${CMAKE_STATIC_LIBRARY_PREFIX}avwrapper${CMAKE_STATIC_LIBRARY_SUFFIX}" ${pascal_flags})
       
   204         ENDIF()
       
   205     else()
       
   206         message(STATUS "FFMPEG library not found, video recording will be disabled")
       
   207     endif()
       
   208 else()
       
   209     message(STATUS "Video recording disabled by user")
       
   210 endif()
       
   211 
   188 set(fpc_flags ${noexecstack_flags} ${pascal_flags} ${hwengine_project})
   212 set(fpc_flags ${noexecstack_flags} ${pascal_flags} ${hwengine_project})
   189 
       
   190 
   213 
   191 IF(NOT APPLE)
   214 IF(NOT APPLE)
   192     #here is the command for standard executables or for shared library
   215     #here is the command for standard executables or for shared library
   193     add_custom_command(OUTPUT "${EXECUTABLE_OUTPUT_PATH}/${engine_output_name}${CMAKE_EXECUTABLE_SUFFIX}"
   216     add_custom_command(OUTPUT "${EXECUTABLE_OUTPUT_PATH}/${engine_output_name}${CMAKE_EXECUTABLE_SUFFIX}"
   194         COMMAND "${fpc_executable}"
   217         COMMAND "${fpc_executable}"
   225 endif()
   248 endif()
   226 
   249 
   227 #this command is a workaround to some inlining issues present in older
   250 #this command is a workaround to some inlining issues present in older
   228 # FreePascal versions and fixed in 2.6, That version is mandatory on OSX,
   251 # FreePascal versions and fixed in 2.6, That version is mandatory on OSX,
   229 # hence the command is not needed there
   252 # hence the command is not needed there
   230 if(NOT APPLE)
   253 # if(NOT APPLE)
   231     add_custom_target(ENGINECLEAN COMMAND ${CMAKE_BUILD_TOOL} "clean" "${PROJECT_BINARY_DIR}" "${hedgewars_SOURCE_DIR}/hedgewars")
   254 #    add_custom_target(ENGINECLEAN COMMAND ${CMAKE_BUILD_TOOL} "clean" "${PROJECT_BINARY_DIR}" "${hedgewars_SOURCE_DIR}/hedgewars")
   232     add_dependencies(${engine_output_name} ENGINECLEAN)
   255 #    add_dependencies(${engine_output_name} ENGINECLEAN)
   233 endif()
   256 # endif()
   234 
   257 
   235 install(PROGRAMS "${EXECUTABLE_OUTPUT_PATH}/${engine_output_name}${CMAKE_EXECUTABLE_SUFFIX}" DESTINATION ${target_dir})
   258 install(PROGRAMS "${EXECUTABLE_OUTPUT_PATH}/${engine_output_name}${CMAKE_EXECUTABLE_SUFFIX}" DESTINATION ${target_dir})
   236 
   259 IF (WIN32)
       
   260     install(PROGRAMS "${EXECUTABLE_OUTPUT_PATH}/${CMAKE_SHARED_LIBRARY_PREFIX}avwrapper${CMAKE_SHARED_LIBRARY_SUFFIX}" DESTINATION ${target_dir})
       
   261 ENDIF()