misc/libphysfs/CMakeLists.txt
author nemo
Sat, 27 Apr 2013 16:56:50 -0400
changeset 8939 b26aaf28c920
parent 8544 d610e692e2f6
child 8821 e85ff6e298b5
child 8833 c13ebed437cb
child 9110 3883b5dc600c
permissions -rw-r--r--
So. First pass. Add secondary explosions to RateExplosion and RateShotgun. Not yet added to shoves. This is of limited utility at present since the dX has to be small since we can't bother tracing all hog motion. But, should be more useful once shove is added, and tracking of explosives and mines.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
7768
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
     1
# PhysicsFS; a portable, flexible file i/o abstraction.
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
     2
# Copyright (C) 2007  Ryan C. Gordon.
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
     3
#
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
     4
# Please see the file LICENSE.txt in the source's root directory.
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
     5
8360
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
     6
## lines starting with '##' are lines overridden/modified/added by Hedgewars configuration
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
     7
##CMAKE_MINIMUM_REQUIRED(VERSION 2.4)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
     8
##PROJECT(PhysicsFS)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
     9
set(PHYSFS_VERSION 2.1.0)
7768
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    10
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    11
# Increment this if/when we break backwards compatibility.
8360
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
    12
set(PHYSFS_SOVERSION 1)
7768
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    13
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    14
# I hate that they define "WIN32" ... we're about to move to Win64...I hope!
8360
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
    15
if(WIN32 AND NOT WINDOWS)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
    16
    set(WINDOWS TRUE)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
    17
endif(WIN32 AND NOT WINDOWS)
8286
2e7eedac380d Fix windows build broken in raf97cdbb7713
unc0rr
parents: 8283
diff changeset
    18
7768
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    19
# Bleh, let's do it for "APPLE" too.
8360
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
    20
if(APPLE AND NOT MACOSX)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
    21
    set(MACOSX TRUE)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
    22
endif(APPLE AND NOT MACOSX)
7768
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    23
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    24
# For now, Haiku and BeOS are the same, as far as the build system cares.
8360
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
    25
if(HAIKU AND NOT BEOS)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
    26
    set(BEOS TRUE)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
    27
endif(HAIKU AND NOT BEOS)
7768
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    28
8360
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
    29
if(CMAKE_SYSTEM_NAME STREQUAL "SunOS")
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
    30
    set(SOLARIS TRUE)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
    31
endif(CMAKE_SYSTEM_NAME STREQUAL "SunOS")
7768
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    32
8360
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
    33
include(CheckIncludeFile)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
    34
include(CheckLibraryExists)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
    35
include(CheckCSourceCompiles)
7768
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    36
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    37
8360
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
    38
if(MACOSX)
7768
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    39
    # Fallback to older OS X on PowerPC to support wider range of systems...
8360
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
    40
    if(CMAKE_OSX_ARCHITECTURES MATCHES ppc)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
    41
        add_definitions(-DMAC_OS_X_VERSION_MIN_REQUIRED=1020)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
    42
        set(OTHER_LDFLAGS ${OTHER_LDFLAGS} " -mmacosx-version-min=10.2")
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
    43
    endif(CMAKE_OSX_ARCHITECTURES MATCHES ppc)
7768
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    44
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    45
    # Need these everywhere...
8360
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
    46
    add_definitions(-fno-common)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
    47
    find_library(iokit_framework NAMES IOKit)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
    48
    list(APPEND OTHER_LDFLAGS ${iokit_framework})
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
    49
endif(MACOSX)
7768
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    50
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    51
# Add some gcc-specific command lines.
8360
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
    52
if(CMAKE_COMPILER_IS_GNUCC)
7768
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    53
    # Always build with debug symbols...you can strip it later.
8360
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
    54
    add_definitions(-g -pipe -Werror -fsigned-char)
7768
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    55
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    56
    # Stupid BeOS generates warnings in the system headers.
8360
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
    57
    if(NOT BEOS)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
    58
        add_definitions(-Wall)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
    59
    endif(NOT BEOS)
7768
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    60
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    61
    CHECK_C_SOURCE_COMPILES("
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    62
        #if ((defined(__GNUC__)) && (__GNUC__ >= 4))
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    63
        int main(int argc, char **argv) { int is_gcc4 = 1; return 0; }
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    64
        #else
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    65
        #error This is not gcc4.
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    66
        #endif
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    67
    " PHYSFS_IS_GCC4)
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    68
8360
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
    69
    if(PHYSFS_IS_GCC4)
7768
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    70
        # Not supported on several operating systems at this time.
8360
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
    71
        if(NOT SOLARIS AND NOT WINDOWS)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
    72
            add_definitions(-fvisibility=hidden)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
    73
        endif(NOT SOLARIS AND NOT WINDOWS)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
    74
    endif(PHYSFS_IS_GCC4)
7768
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    75
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    76
    # Don't use -rpath.
8360
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
    77
    set(CMAKE_SKIP_RPATH ON CACHE BOOL "Skip RPATH" FORCE)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
    78
endif(CMAKE_COMPILER_IS_GNUCC)
7768
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    79
8360
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
    80
if(CMAKE_C_COMPILER_ID STREQUAL "SunPro")
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
    81
    add_definitions(-erroff=E_EMPTY_TRANSLATION_UNIT)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
    82
    add_definitions(-xldscope=hidden)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
    83
endif(CMAKE_C_COMPILER_ID STREQUAL "SunPro")
7768
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    84
8360
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
    85
if(MSVC)
7768
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    86
    # VS.NET 8.0 got really really anal about strcpy, etc, which even if we
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    87
    #  cleaned up our code, zlib, etc still use...so disable the warning.
8360
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
    88
    add_definitions(-D_CRT_SECURE_NO_WARNINGS=1)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
    89
endif(MSVC)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
    90
7768
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    91
8360
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
    92
if(BEOS)
7768
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    93
    # We add this explicitly, since we don't want CMake to think this
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    94
    #  is a C++ project unless we're on BeOS.
8360
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
    95
    set(PHYSFS_BEOS_SRCS src/platform_beos.cpp)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
    96
    find_library(BE_LIBRARY be)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
    97
    find_library(ROOT_LIBRARY root)
8526
9f2bd885d773 update cmake files to use the two libraries independently
koda
parents: 8522
diff changeset
    98
    set(optional_library_libs ${optional_library_libs} ${BE_LIBRARY} ${ROOT_LIBRARY})
8360
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
    99
endif(BEOS)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   100
7768
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
   101
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
   102
# Almost everything is "compiled" here, but things that don't apply to the
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
   103
#  build are #ifdef'd out. This is to make it easy to embed PhysicsFS into
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
   104
#  another project or bring up a new build system: just compile all the source
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
   105
#  code and #define the things you want.
8360
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   106
set(PHYSFS_SRCS
8526
9f2bd885d773 update cmake files to use the two libraries independently
koda
parents: 8522
diff changeset
   107
    physfs.c
9f2bd885d773 update cmake files to use the two libraries independently
koda
parents: 8522
diff changeset
   108
    physfs_byteorder.c
9f2bd885d773 update cmake files to use the two libraries independently
koda
parents: 8522
diff changeset
   109
    physfs_unicode.c
9f2bd885d773 update cmake files to use the two libraries independently
koda
parents: 8522
diff changeset
   110
    platform_posix.c
9f2bd885d773 update cmake files to use the two libraries independently
koda
parents: 8522
diff changeset
   111
    platform_unix.c
9f2bd885d773 update cmake files to use the two libraries independently
koda
parents: 8522
diff changeset
   112
    platform_macosx.c
9f2bd885d773 update cmake files to use the two libraries independently
koda
parents: 8522
diff changeset
   113
    platform_windows.c
9f2bd885d773 update cmake files to use the two libraries independently
koda
parents: 8522
diff changeset
   114
    archiver_dir.c
9f2bd885d773 update cmake files to use the two libraries independently
koda
parents: 8522
diff changeset
   115
    archiver_unpacked.c
9f2bd885d773 update cmake files to use the two libraries independently
koda
parents: 8522
diff changeset
   116
    archiver_grp.c
9f2bd885d773 update cmake files to use the two libraries independently
koda
parents: 8522
diff changeset
   117
    archiver_hog.c
9f2bd885d773 update cmake files to use the two libraries independently
koda
parents: 8522
diff changeset
   118
    archiver_lzma.c
9f2bd885d773 update cmake files to use the two libraries independently
koda
parents: 8522
diff changeset
   119
    archiver_mvl.c
9f2bd885d773 update cmake files to use the two libraries independently
koda
parents: 8522
diff changeset
   120
    archiver_qpak.c
9f2bd885d773 update cmake files to use the two libraries independently
koda
parents: 8522
diff changeset
   121
    archiver_wad.c
9f2bd885d773 update cmake files to use the two libraries independently
koda
parents: 8522
diff changeset
   122
    archiver_zip.c
9f2bd885d773 update cmake files to use the two libraries independently
koda
parents: 8522
diff changeset
   123
    archiver_iso9660.c
7768
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
   124
    ${PHYSFS_BEOS_SRCS}
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
   125
)
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
   126
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
   127
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
   128
# platform layers ...
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
   129
8360
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   130
if(UNIX)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   131
    if(BEOS)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   132
        set(PHYSFS_HAVE_CDROM_SUPPORT TRUE)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   133
        set(PHYSFS_HAVE_THREAD_SUPPORT TRUE)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   134
        set(HAVE_PTHREAD_H TRUE)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   135
    else(BEOS)
7768
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
   136
        CHECK_INCLUDE_FILE(sys/ucred.h HAVE_UCRED_H)
8360
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   137
        if(HAVE_UCRED_H)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   138
            add_definitions(-DPHYSFS_HAVE_SYS_UCRED_H=1)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   139
            set(PHYSFS_HAVE_CDROM_SUPPORT TRUE)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   140
        endif(HAVE_UCRED_H)
7768
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
   141
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
   142
        CHECK_INCLUDE_FILE(mntent.h HAVE_MNTENT_H)
8360
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   143
        if(HAVE_MNTENT_H)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   144
            add_definitions(-DPHYSFS_HAVE_MNTENT_H=1)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   145
            set(PHYSFS_HAVE_CDROM_SUPPORT TRUE)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   146
        endif(HAVE_MNTENT_H)
7768
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
   147
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
   148
        # !!! FIXME: Solaris fails this, because mnttab.h implicitly
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
   149
        # !!! FIXME:  depends on other system headers.  :(
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
   150
        #CHECK_INCLUDE_FILE(sys/mnttab.h HAVE_SYS_MNTTAB_H)
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
   151
        CHECK_C_SOURCE_COMPILES("
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
   152
            #include <stdio.h>
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
   153
            #include <sys/mnttab.h>
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
   154
            int main(int argc, char **argv) { return 0; }
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
   155
        " HAVE_SYS_MNTTAB_H)
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
   156
8360
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   157
        if(HAVE_SYS_MNTTAB_H)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   158
            add_definitions(-DPHYSFS_HAVE_SYS_MNTTAB_H=1)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   159
            set(PHYSFS_HAVE_CDROM_SUPPORT TRUE)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   160
        endif(HAVE_SYS_MNTTAB_H)
7768
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
   161
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
   162
        CHECK_INCLUDE_FILE(pthread.h HAVE_PTHREAD_H)
8360
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   163
        if(HAVE_PTHREAD_H)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   164
            set(PHYSFS_HAVE_THREAD_SUPPORT TRUE)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   165
        endif(HAVE_PTHREAD_H)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   166
    endif(BEOS)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   167
endif(UNIX)
7768
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
   168
8360
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   169
if(WINDOWS)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   170
    set(PHYSFS_HAVE_CDROM_SUPPORT TRUE)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   171
    set(PHYSFS_HAVE_THREAD_SUPPORT TRUE)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   172
endif(WINDOWS)
7768
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
   173
8360
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   174
if(NOT PHYSFS_HAVE_CDROM_SUPPORT)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   175
    add_definitions(-DPHYSFS_NO_CDROM_SUPPORT=1)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   176
    message(WARNING " ***")
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   177
    message(WARNING " *** There is no CD-ROM support in this build!")
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   178
    message(WARNING " *** PhysicsFS will just pretend there are no discs.")
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   179
    message(WARNING " *** This may be fine, depending on how PhysicsFS is used,")
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   180
    message(WARNING " ***   but is this what you REALLY wanted?")
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   181
    message(WARNING " *** (Maybe fix CMakeLists.txt, or write a platform driver?)")
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   182
    message(WARNING " ***")
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   183
endif(NOT PHYSFS_HAVE_CDROM_SUPPORT)
7768
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
   184
8360
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   185
if(PHYSFS_HAVE_THREAD_SUPPORT)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   186
    add_definitions(-D_REENTRANT -D_THREAD_SAFE)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   187
else(PHYSFS_HAVE_THREAD_SUPPORT)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   188
    add_definitions(-DPHYSFS_NO_THREAD_SUPPORT=1)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   189
    message(WARNING " ***")
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   190
    message(WARNING " *** There is no thread support in this build!")
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   191
    message(WARNING " *** PhysicsFS will NOT be reentrant!")
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   192
    message(WARNING " *** This may be fine, depending on how PhysicsFS is used,")
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   193
    message(WARNING " ***   but is this what you REALLY wanted?")
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   194
    message(WARNING " *** (Maybe fix CMakeLists.txt, or write a platform driver?)")
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   195
    message(WARNING " ***")
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   196
endif(PHYSFS_HAVE_THREAD_SUPPORT)
7768
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
   197
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
   198
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
   199
# Archivers ...
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
   200
8360
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   201
option(PHYSFS_ARCHIVE_ZIP "Enable ZIP support" TRUE)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   202
if(PHYSFS_ARCHIVE_ZIP)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   203
    add_definitions(-DPHYSFS_SUPPORTS_ZIP=1)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   204
    set(PHYSFS_FEATURES "ZIP")
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   205
endif(PHYSFS_ARCHIVE_ZIP)
7768
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
   206
8542
dc511bf91aa0 disable unneeded physfs archives (as of bug 529)
koda
parents: 8540
diff changeset
   207
#option(PHYSFS_ARCHIVE_GRP "Enable Build Engine GRP support" TRUE)
dc511bf91aa0 disable unneeded physfs archives (as of bug 529)
koda
parents: 8540
diff changeset
   208
#if(PHYSFS_ARCHIVE_GRP)
dc511bf91aa0 disable unneeded physfs archives (as of bug 529)
koda
parents: 8540
diff changeset
   209
#    add_definitions(-DPHYSFS_SUPPORTS_GRP=1)
dc511bf91aa0 disable unneeded physfs archives (as of bug 529)
koda
parents: 8540
diff changeset
   210
#    set(PHYSFS_FEATURES "${PHYSFS_FEATURES} GRP")
dc511bf91aa0 disable unneeded physfs archives (as of bug 529)
koda
parents: 8540
diff changeset
   211
#endif(PHYSFS_ARCHIVE_GRP)
7768
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
   212
8542
dc511bf91aa0 disable unneeded physfs archives (as of bug 529)
koda
parents: 8540
diff changeset
   213
#option(PHYSFS_ARCHIVE_WAD "Enable Doom WAD support" TRUE)
dc511bf91aa0 disable unneeded physfs archives (as of bug 529)
koda
parents: 8540
diff changeset
   214
#if(PHYSFS_ARCHIVE_WAD)
dc511bf91aa0 disable unneeded physfs archives (as of bug 529)
koda
parents: 8540
diff changeset
   215
#    add_definitions(-DPHYSFS_SUPPORTS_WAD=1)
dc511bf91aa0 disable unneeded physfs archives (as of bug 529)
koda
parents: 8540
diff changeset
   216
#    set(PHYSFS_FEATURES "${PHYSFS_FEATURES} WAD")
dc511bf91aa0 disable unneeded physfs archives (as of bug 529)
koda
parents: 8540
diff changeset
   217
#endif(PHYSFS_ARCHIVE_WAD)
7768
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
   218
8542
dc511bf91aa0 disable unneeded physfs archives (as of bug 529)
koda
parents: 8540
diff changeset
   219
#option(PHYSFS_ARCHIVE_HOG "Enable Descent I/II HOG support" TRUE)
dc511bf91aa0 disable unneeded physfs archives (as of bug 529)
koda
parents: 8540
diff changeset
   220
#if(PHYSFS_ARCHIVE_HOG)
dc511bf91aa0 disable unneeded physfs archives (as of bug 529)
koda
parents: 8540
diff changeset
   221
#    add_definitions(-DPHYSFS_SUPPORTS_HOG=1)
dc511bf91aa0 disable unneeded physfs archives (as of bug 529)
koda
parents: 8540
diff changeset
   222
#    set(PHYSFS_FEATURES "${PHYSFS_FEATURES} HOG")
dc511bf91aa0 disable unneeded physfs archives (as of bug 529)
koda
parents: 8540
diff changeset
   223
#endif(PHYSFS_ARCHIVE_HOG)
7768
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
   224
8542
dc511bf91aa0 disable unneeded physfs archives (as of bug 529)
koda
parents: 8540
diff changeset
   225
#option(PHYSFS_ARCHIVE_MVL "Enable Descent I/II MVL support" TRUE)
dc511bf91aa0 disable unneeded physfs archives (as of bug 529)
koda
parents: 8540
diff changeset
   226
#if(PHYSFS_ARCHIVE_MVL)
dc511bf91aa0 disable unneeded physfs archives (as of bug 529)
koda
parents: 8540
diff changeset
   227
#    add_definitions(-DPHYSFS_SUPPORTS_MVL=1)
dc511bf91aa0 disable unneeded physfs archives (as of bug 529)
koda
parents: 8540
diff changeset
   228
#    set(PHYSFS_FEATURES "${PHYSFS_FEATURES} MVL")
dc511bf91aa0 disable unneeded physfs archives (as of bug 529)
koda
parents: 8540
diff changeset
   229
#endif(PHYSFS_ARCHIVE_MVL)
7768
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
   230
8542
dc511bf91aa0 disable unneeded physfs archives (as of bug 529)
koda
parents: 8540
diff changeset
   231
#option(PHYSFS_ARCHIVE_QPAK "Enable Quake I/II QPAK support" TRUE)
dc511bf91aa0 disable unneeded physfs archives (as of bug 529)
koda
parents: 8540
diff changeset
   232
#if(PHYSFS_ARCHIVE_QPAK)
dc511bf91aa0 disable unneeded physfs archives (as of bug 529)
koda
parents: 8540
diff changeset
   233
#    add_definitions(-DPHYSFS_SUPPORTS_QPAK=1)
dc511bf91aa0 disable unneeded physfs archives (as of bug 529)
koda
parents: 8540
diff changeset
   234
#    set(PHYSFS_FEATURES "${PHYSFS_FEATURES} QPAK")
dc511bf91aa0 disable unneeded physfs archives (as of bug 529)
koda
parents: 8540
diff changeset
   235
#endif(PHYSFS_ARCHIVE_QPAK)
7768
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
   236
8542
dc511bf91aa0 disable unneeded physfs archives (as of bug 529)
koda
parents: 8540
diff changeset
   237
#option(PHYSFS_ARCHIVE_ISO9660 "Enable ISO9660 support" TRUE)
dc511bf91aa0 disable unneeded physfs archives (as of bug 529)
koda
parents: 8540
diff changeset
   238
#if(PHYSFS_ARCHIVE_ISO9660)
dc511bf91aa0 disable unneeded physfs archives (as of bug 529)
koda
parents: 8540
diff changeset
   239
#    add_definitions(-DPHYSFS_SUPPORTS_ISO9660=1)
dc511bf91aa0 disable unneeded physfs archives (as of bug 529)
koda
parents: 8540
diff changeset
   240
#    set(PHYSFS_FEATURES "${PHYSFS_FEATURES} CD-ROM")
dc511bf91aa0 disable unneeded physfs archives (as of bug 529)
koda
parents: 8540
diff changeset
   241
#endif(PHYSFS_ARCHIVE_ISO9660)
7768
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
   242
8526
9f2bd885d773 update cmake files to use the two libraries independently
koda
parents: 8522
diff changeset
   243
8360
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   244
##as needed by Hedgewars configuration
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   245
if(WINDOWS)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   246
    option(PHYSFS_BUILD_STATIC "Build static library" FALSE)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   247
    option(PHYSFS_BUILD_SHARED "Build shared library" TRUE)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   248
    list(APPEND OTHER_LDFLAGS ${SDL_LIBRARY})
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   249
else(WINDOWS)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   250
    option(PHYSFS_BUILD_STATIC "Build static library" TRUE)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   251
    option(PHYSFS_BUILD_SHARED "Build shared library" FALSE)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   252
endif(WINDOWS)
7768
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
   253
8360
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   254
if(PHYSFS_BUILD_STATIC)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   255
    add_library(physfs STATIC ${PHYSFS_SRCS})
8540
cf808329bb6f this should hijack the linker name and always pick the bundled physfs when another version is already prsent
koda
parents: 8526
diff changeset
   256
    set_target_properties(physfs PROPERTIES OUTPUT_NAME ${physfs_output_name}) ##
8526
9f2bd885d773 update cmake files to use the two libraries independently
koda
parents: 8522
diff changeset
   257
    set(lib_prefix ${CMAKE_STATIC_LIBRARY_PREFIX}) ##
9f2bd885d773 update cmake files to use the two libraries independently
koda
parents: 8522
diff changeset
   258
    set(lib_suffix ${CMAKE_STATIC_LIBRARY_SUFFIX}) ##
8360
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   259
endif(PHYSFS_BUILD_STATIC)
7768
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
   260
8360
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   261
if(PHYSFS_BUILD_SHARED)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   262
    add_library(physfs SHARED ${PHYSFS_SRCS})
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   263
    set_target_properties(physfs PROPERTIES VERSION ${PHYSFS_VERSION})
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   264
    set_target_properties(physfs PROPERTIES SOVERSION ${PHYSFS_SOVERSION})
8540
cf808329bb6f this should hijack the linker name and always pick the bundled physfs when another version is already prsent
koda
parents: 8526
diff changeset
   265
    set_target_properties(physfs PROPERTIES OUTPUT_NAME ${physfs_output_name}) ##
8526
9f2bd885d773 update cmake files to use the two libraries independently
koda
parents: 8522
diff changeset
   266
    target_link_libraries(physfs ${optional_library_libs} ${OTHER_LDFLAGS})
8360
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   267
    install(TARGETS physfs RUNTIME DESTINATION ${target_library_install_dir}) ##
8526
9f2bd885d773 update cmake files to use the two libraries independently
koda
parents: 8522
diff changeset
   268
    set(lib_prefix ${CMAKE_SHARED_LIBRARY_PREFIX}) ##
9f2bd885d773 update cmake files to use the two libraries independently
koda
parents: 8522
diff changeset
   269
    set(lib_suffix ${CMAKE_SHARED_LIBRARY_SUFFIX}) ##
8360
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   270
endif(PHYSFS_BUILD_SHARED)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   271
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   272
if(NOT PHYSFS_BUILD_SHARED AND NOT PHYSFS_BUILD_STATIC)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   273
    message(FATAL "Both shared and static libraries are disabled!")
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   274
endif(NOT PHYSFS_BUILD_SHARED AND NOT PHYSFS_BUILD_STATIC)
7768
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
   275
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
   276
# CMake FAQ says I need this...
8360
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   277
if(PHYSFS_BUILD_SHARED AND PHYSFS_BUILD_STATIC)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   278
    set_target_properties(physfs PROPERTIES CLEAN_DIRECT_OUTPUT 1)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   279
endif(PHYSFS_BUILD_SHARED AND PHYSFS_BUILD_STATIC)
7768
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
   280
8526
9f2bd885d773 update cmake files to use the two libraries independently
koda
parents: 8522
diff changeset
   281
## added standard variables emulating the FindPhysFS.cmake ones (FORCE or cmake won't pick 'em)
9f2bd885d773 update cmake files to use the two libraries independently
koda
parents: 8522
diff changeset
   282
set(PHYSFS_INCLUDE_DIR ${CMAKE_SOURCE_DIR}/misc/libphysfs/ CACHE STRING "" FORCE)
8540
cf808329bb6f this should hijack the linker name and always pick the bundled physfs when another version is already prsent
koda
parents: 8526
diff changeset
   283
set(PHYSFS_LIBRARY ${LIBRARY_OUTPUT_PATH}/${lib_prefix}${physfs_output_name}${lib_suffix} CACHE STRING "" FORCE)
8526
9f2bd885d773 update cmake files to use the two libraries independently
koda
parents: 8522
diff changeset
   284
7768
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
   285
8360
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   286
## removed install, language bindings and test program
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   287
## simplified configuration output
7768
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
   288
8542
dc511bf91aa0 disable unneeded physfs archives (as of bug 529)
koda
parents: 8540
diff changeset
   289
#message(STATUS "PhysFS will be built with ${PHYSFS_FEATURES} support")
7768
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
   290