Index: CMakeLists.txt =================================================================== --- CMakeLists.txt (revisión: 9870) +++ CMakeLists.txt (copia de trabajo) @@ -30,9 +30,13 @@ if (MINGW) set(CMAKE_FIND_LIBRARY_SUFFIXES ".a" ON) set(CMAKE_EXE_LINKER_FLAGS "-static -static-libgcc -static-libstdc++") -endif() +endif () +if (APPLE) + link_directories(/usr/local/lib) +endif () + # # Dependencies # @@ -81,13 +85,10 @@ # # sources -if (CMAKE_BUILD_TYPE EQUAL "DEBUG") -message("DO DEBUG") - add_executable(simutrans) -else () -message("DO RELEASE") - add_executable(simutrans WIN32 MACOSX_BUNDLE) -endif () +# +add_executable(simutrans MACOSX_BUNDLE) +set_target_properties(simutrans PROPERTIES WIN32_EXECUTABLE $) + include(SimutransSourceList) # @@ -110,7 +111,7 @@ endif () # -# Libaries +# Libraries # target_link_libraries(simutrans PRIVATE PNG::PNG) @@ -137,10 +138,11 @@ if (SIMUTRANS_BACKEND STREQUAL "sdl2") target_sources(simutrans PRIVATE display/simgraph16.cc sys/simsys_s2.cc sound/sdl2_sound.cc) + target_include_directories(simutrans PRIVATE ${SDL2_INCLUDE_DIRS}) if (MINGW) target_link_libraries(simutrans PRIVATE ${SDL2_STATIC_LIBRARIES}) else () - target_link_libraries(simutrans PRIVATE SDL2::SDL2) + target_link_libraries(simutrans PRIVATE ${SDL2_LIBRARIES}) endif (MINGW) target_compile_definitions(simutrans PRIVATE COLOUR_DEPTH=16) @@ -170,7 +172,7 @@ if (MINGW) target_link_libraries(simutrans PRIVATE ${Freetype_STATIC_LIBRARIES}) else () - target_link_libraries(simutrans PRIVATE Freetype::Freetype) + target_link_libraries(simutrans PRIVATE ${Freetype_LIBRARIES}) endif (MINGW) target_compile_definitions(simutrans PRIVATE USE_FREETYPE=1) endif (SIMUTRANS_USE_FREETYPE) @@ -233,7 +235,8 @@ target_compile_options(simutrans PRIVATE ${SIMUTRANS_COMMON_COMPILE_OPTIONS}) -target_compile_definitions(simutrans PRIVATE $,DEBUG=1,>) +target_compile_definitions(simutrans PRIVATE DEBUG=${SIMUTRANS_DEBUG_LEVEL}) + target_compile_definitions(simutrans PRIVATE MSG_LEVEL=${SIMUTRANS_MSG_LEVEL}) if (SIMUTRANS_AUTOJOIN_PUBLIC) @@ -260,11 +263,17 @@ target_compile_definitions(simutrans PRIVATE ALT_SDL_DIR=1) endif (APPLE) +# +# Package +# +if (APPLE) + include(MacBundle) +endif () # # Installation # -install(TARGETS simutrans RUNTIME DESTINATION simutrans) +install(TARGETS simutrans RUNTIME DESTINATION simutrans BUNDLE DESTINATION simutrans) install(DIRECTORY "${CMAKE_SOURCE_DIR}/simutrans/" DESTINATION "simutrans") @@ -276,13 +285,14 @@ ) + # # Nettool/Makeobj # if (PNG_FOUND) - add_subdirectory(makeobj) + add_subdirectory(makeobj EXCLUDE_FROM_ALL) endif () -add_subdirectory(nettools) +add_subdirectory(nettools EXCLUDE_FROM_ALL) Index: cmake/MacBundle.cmake =================================================================== --- cmake/MacBundle.cmake (nonexistent) +++ cmake/MacBundle.cmake (copia de trabajo) @@ -0,0 +1,31 @@ +# Set copyright text +string(TIMESTAMP YEAR "%Y") +set(COPYRIGHT "Copyright 1997-${YEAR} by the Simutrans Team") + +# Get version number +file(READ ${CMAKE_SOURCE_DIR}/simversion.h VERSION_FILE) + +string(REGEX MATCH "VERSION_MAJOR ([0-9]*)" _ ${VERSION_FILE}) +set(VERSION ${CMAKE_MATCH_1}) + +# Copy the icon file +set(ICON ${CMAKE_SOURCE_DIR}/OSX/simutrans.icns) +target_sources(simutrans PRIVATE ${ICON}) +set_source_files_properties(${ICON} PROPERTIES MACOSX_PACKAGE_LOCATION "Resources") + +# Bundle information +set_target_properties(simutrans PROPERTIES + MACOSX_BUNDLE_BUNDLE_NAME simutrans + MACOSX_BUNDLE_BUNDLE_VERSION ${VERSION} + MACOSX_BUNDLE_COPYRIGHT ${COPYRIGHT} + MACOSX_BUNDLE_GUI_IDENTIFIER org.simutrans.simutrans + MACOSX_BUNDLE_ICON_FILE simutrans + MACOSX_BUNDLE_INFO_STRING "Simutrans ${VERSION}, ${COPYRIGHT}" + MACOSX_BUNDLE_LONG_VERSION_STRING ${VERSION} + MACOSX_BUNDLE_SHORT_VERSION_STRING ${VERSION} +) + +install(CODE " + include(BundleUtilities) + fixup_bundle(\"${CMAKE_BINARY_DIR}/simutrans/simutrans.app\" \"\" \"\") +") Index: cmake/SimutransCompileOptions.cmake =================================================================== --- cmake/SimutransCompileOptions.cmake (revisión: 9870) +++ cmake/SimutransCompileOptions.cmake (copia de trabajo) @@ -46,9 +46,13 @@ option(ENABLE_WATERWAY_SIGNS "Allow private signs on watersways" OFF) option(AUTOJOIN_PUBLIC "Join when making things public" OFF) +if(NOT SIMUTRANS_DEBUG_LEVEL) + set(SIMUTRANS_DEBUG_LEVEL $) +endif () + if(NOT SIMUTRANS_MSG_LEVEL) set(SIMUTRANS_MSG_LEVEL 3 CACHE STRING "Message verbosity level") -endif() +endif () set_property(CACHE SIMUTRANS_MSG_LEVEL PROPERTY STRINGS 0 1 2 3 4) Index: io/classify_file.cc =================================================================== --- io/classify_file.cc (revisión: 9870) +++ io/classify_file.cc (copia de trabajo) @@ -8,7 +8,7 @@ #include "rdwr/bzip2_file_rdwr_stream.h" #include "rdwr/raw_file_rdwr_stream.h" #include "rdwr/zlib_file_rdwr_stream.h" -#if USE_ZSTD +#ifdef USE_ZSTD #include "rdwr/zstd_file_rdwr_stream.h" #endif Index: utils/simthread.h =================================================================== --- utils/simthread.h (revisión: 9870) +++ utils/simthread.h (copia de trabajo) @@ -9,7 +9,7 @@ #ifdef MULTI_THREAD -#if !defined(__APPLE__) && _XOPEN_SOURCE < 600 +#if !defined(__APPLE__) && ( !defined(_XOPEN_SOURCE) || _XOPEN_SOURCE < 600 ) // On Posix systems, this enables barriers. // On OS X, barriers are not supported anyway, and defining this would // cause PTHREAD_RECURSIVE_MUTEX_INITIALIZER to not get defined.