misc/libphysfs/CMakeLists.txt
author nemo
Tue, 21 Aug 2018 15:11:28 -0400
branch0.9.24
changeset 13682 f60b3998ba56
parent 11376 5375b9168fc2
permissions -rw-r--r--
only-stats should never create visual gears. and lua should never rely on visual gears being created. critical is just to help ensure ones important to gameplay don't get lost in fast-forward
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)
9185
115e7daa4796 osx, link also foundation to physfs
koda
parents: 9158
diff changeset
    42
        list(APPEND OTHER_LDFLAGS "-mmacosx-version-min=10.2")
8360
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)
9185
115e7daa4796 osx, link also foundation to physfs
koda
parents: 9158
diff changeset
    47
    find_library(foundation_framework NAMES Foundation)
115e7daa4796 osx, link also foundation to physfs
koda
parents: 9158
diff changeset
    48
    list(APPEND OTHER_LDFLAGS ${foundation_framework})
8360
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
    49
    find_library(iokit_framework NAMES IOKit)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
    50
    list(APPEND OTHER_LDFLAGS ${iokit_framework})
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
    51
endif(MACOSX)
7768
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    52
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    53
# Add some gcc-specific command lines.
8360
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
    54
if(CMAKE_COMPILER_IS_GNUCC)
9196
89d98f970de9 these check are now useless
koda
parents: 9194
diff changeset
    55
    # Always build with debug symbols... you can strip it later.
9158
b4d8baf4669a this was getting annoying, don't error out on warnings physfs
koda
parents: 9117
diff changeset
    56
    add_definitions(-g -fsigned-char)
8360
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
    57
endif(CMAKE_COMPILER_IS_GNUCC)
7768
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    58
8360
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
    59
if(CMAKE_C_COMPILER_ID STREQUAL "SunPro")
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
    60
    add_definitions(-erroff=E_EMPTY_TRANSLATION_UNIT)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
    61
    add_definitions(-xldscope=hidden)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
    62
endif(CMAKE_C_COMPILER_ID STREQUAL "SunPro")
7768
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    63
8360
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
    64
if(MSVC)
7768
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    65
    # VS.NET 8.0 got really really anal about strcpy, etc, which even if we
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    66
    #  cleaned up our code, zlib, etc still use...so disable the warning.
8360
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
    67
    add_definitions(-D_CRT_SECURE_NO_WARNINGS=1)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
    68
endif(MSVC)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
    69
7768
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    70
8360
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
    71
if(BEOS)
7768
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    72
    # We add this explicitly, since we don't want CMake to think this
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    73
    #  is a C++ project unless we're on BeOS.
8360
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
    74
    set(PHYSFS_BEOS_SRCS src/platform_beos.cpp)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
    75
    find_library(BE_LIBRARY be)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
    76
    find_library(ROOT_LIBRARY root)
8526
9f2bd885d773 update cmake files to use the two libraries independently
koda
parents: 8522
diff changeset
    77
    set(optional_library_libs ${optional_library_libs} ${BE_LIBRARY} ${ROOT_LIBRARY})
8360
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
    78
endif(BEOS)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
    79
7768
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    80
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    81
# Almost everything is "compiled" here, but things that don't apply to the
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    82
#  build are #ifdef'd out. This is to make it easy to embed PhysicsFS into
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    83
#  another project or bring up a new build system: just compile all the source
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
    84
#  code and #define the things you want.
8360
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
    85
set(PHYSFS_SRCS
8526
9f2bd885d773 update cmake files to use the two libraries independently
koda
parents: 8522
diff changeset
    86
    physfs.c
9f2bd885d773 update cmake files to use the two libraries independently
koda
parents: 8522
diff changeset
    87
    physfs_byteorder.c
9f2bd885d773 update cmake files to use the two libraries independently
koda
parents: 8522
diff changeset
    88
    physfs_unicode.c
9f2bd885d773 update cmake files to use the two libraries independently
koda
parents: 8522
diff changeset
    89
    platform_posix.c
9f2bd885d773 update cmake files to use the two libraries independently
koda
parents: 8522
diff changeset
    90
    platform_unix.c
9f2bd885d773 update cmake files to use the two libraries independently
koda
parents: 8522
diff changeset
    91
    platform_macosx.c
9f2bd885d773 update cmake files to use the two libraries independently
koda
parents: 8522
diff changeset
    92
    platform_windows.c
9f2bd885d773 update cmake files to use the two libraries independently
koda
parents: 8522
diff changeset
    93
    archiver_dir.c
9f2bd885d773 update cmake files to use the two libraries independently
koda
parents: 8522
diff changeset
    94
    archiver_unpacked.c
9f2bd885d773 update cmake files to use the two libraries independently
koda
parents: 8522
diff changeset
    95
    archiver_grp.c
9f2bd885d773 update cmake files to use the two libraries independently
koda
parents: 8522
diff changeset
    96
    archiver_hog.c
9f2bd885d773 update cmake files to use the two libraries independently
koda
parents: 8522
diff changeset
    97
    archiver_lzma.c
9f2bd885d773 update cmake files to use the two libraries independently
koda
parents: 8522
diff changeset
    98
    archiver_mvl.c
9f2bd885d773 update cmake files to use the two libraries independently
koda
parents: 8522
diff changeset
    99
    archiver_qpak.c
9f2bd885d773 update cmake files to use the two libraries independently
koda
parents: 8522
diff changeset
   100
    archiver_wad.c
9f2bd885d773 update cmake files to use the two libraries independently
koda
parents: 8522
diff changeset
   101
    archiver_zip.c
9f2bd885d773 update cmake files to use the two libraries independently
koda
parents: 8522
diff changeset
   102
    archiver_iso9660.c
7768
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
   103
    ${PHYSFS_BEOS_SRCS}
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
   104
)
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
   105
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
   106
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
   107
# platform layers ...
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
   108
8360
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   109
if(UNIX)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   110
    if(BEOS)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   111
        set(PHYSFS_HAVE_CDROM_SUPPORT TRUE)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   112
        set(PHYSFS_HAVE_THREAD_SUPPORT TRUE)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   113
        set(HAVE_PTHREAD_H TRUE)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   114
    else(BEOS)
7768
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
   115
        CHECK_INCLUDE_FILE(sys/ucred.h HAVE_UCRED_H)
8360
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   116
        if(HAVE_UCRED_H)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   117
            add_definitions(-DPHYSFS_HAVE_SYS_UCRED_H=1)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   118
            set(PHYSFS_HAVE_CDROM_SUPPORT TRUE)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   119
        endif(HAVE_UCRED_H)
7768
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
   120
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
   121
        CHECK_INCLUDE_FILE(mntent.h HAVE_MNTENT_H)
8360
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   122
        if(HAVE_MNTENT_H)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   123
            add_definitions(-DPHYSFS_HAVE_MNTENT_H=1)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   124
            set(PHYSFS_HAVE_CDROM_SUPPORT TRUE)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   125
        endif(HAVE_MNTENT_H)
7768
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
   126
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
   127
        # !!! FIXME: Solaris fails this, because mnttab.h implicitly
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
   128
        # !!! FIXME:  depends on other system headers.  :(
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
   129
        #CHECK_INCLUDE_FILE(sys/mnttab.h HAVE_SYS_MNTTAB_H)
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
   130
        CHECK_C_SOURCE_COMPILES("
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
   131
            #include <stdio.h>
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
   132
            #include <sys/mnttab.h>
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
   133
            int main(int argc, char **argv) { return 0; }
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
   134
        " HAVE_SYS_MNTTAB_H)
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
   135
8360
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   136
        if(HAVE_SYS_MNTTAB_H)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   137
            add_definitions(-DPHYSFS_HAVE_SYS_MNTTAB_H=1)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   138
            set(PHYSFS_HAVE_CDROM_SUPPORT TRUE)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   139
        endif(HAVE_SYS_MNTTAB_H)
7768
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
   140
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
   141
        CHECK_INCLUDE_FILE(pthread.h HAVE_PTHREAD_H)
8360
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   142
        if(HAVE_PTHREAD_H)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   143
            set(PHYSFS_HAVE_THREAD_SUPPORT TRUE)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   144
        endif(HAVE_PTHREAD_H)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   145
    endif(BEOS)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   146
endif(UNIX)
7768
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
   147
8360
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   148
if(WINDOWS)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   149
    set(PHYSFS_HAVE_CDROM_SUPPORT TRUE)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   150
    set(PHYSFS_HAVE_THREAD_SUPPORT TRUE)
11376
5375b9168fc2 libphysfs: Update sdl library name
koda
parents: 9236
diff changeset
   151
    list(APPEND OTHER_LDFLAGS ${SDL2_LIBRARY})
8360
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   152
endif(WINDOWS)
7768
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
   153
8360
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   154
if(NOT PHYSFS_HAVE_CDROM_SUPPORT)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   155
    add_definitions(-DPHYSFS_NO_CDROM_SUPPORT=1)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   156
    message(WARNING " ***")
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   157
    message(WARNING " *** There is no CD-ROM support in this build!")
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   158
    message(WARNING " *** PhysicsFS will just pretend there are no discs.")
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   159
    message(WARNING " *** This may be fine, depending on how PhysicsFS is used,")
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   160
    message(WARNING " ***   but is this what you REALLY wanted?")
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   161
    message(WARNING " *** (Maybe fix CMakeLists.txt, or write a platform driver?)")
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   162
    message(WARNING " ***")
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   163
endif(NOT PHYSFS_HAVE_CDROM_SUPPORT)
7768
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
   164
8360
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   165
if(PHYSFS_HAVE_THREAD_SUPPORT)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   166
    add_definitions(-D_REENTRANT -D_THREAD_SAFE)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   167
else(PHYSFS_HAVE_THREAD_SUPPORT)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   168
    add_definitions(-DPHYSFS_NO_THREAD_SUPPORT=1)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   169
    message(WARNING " ***")
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   170
    message(WARNING " *** There is no thread support in this build!")
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   171
    message(WARNING " *** PhysicsFS will NOT be reentrant!")
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   172
    message(WARNING " *** This may be fine, depending on how PhysicsFS is used,")
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   173
    message(WARNING " ***   but is this what you REALLY wanted?")
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   174
    message(WARNING " *** (Maybe fix CMakeLists.txt, or write a platform driver?)")
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   175
    message(WARNING " ***")
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   176
endif(PHYSFS_HAVE_THREAD_SUPPORT)
7768
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
   177
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
   178
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
   179
# Archivers ...
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
   180
8360
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   181
option(PHYSFS_ARCHIVE_ZIP "Enable ZIP support" TRUE)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   182
if(PHYSFS_ARCHIVE_ZIP)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   183
    add_definitions(-DPHYSFS_SUPPORTS_ZIP=1)
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   184
    set(PHYSFS_FEATURES "ZIP")
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   185
endif(PHYSFS_ARCHIVE_ZIP)
7768
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
   186
8542
dc511bf91aa0 disable unneeded physfs archives (as of bug 529)
koda
parents: 8540
diff changeset
   187
#option(PHYSFS_ARCHIVE_GRP "Enable Build Engine GRP support" TRUE)
dc511bf91aa0 disable unneeded physfs archives (as of bug 529)
koda
parents: 8540
diff changeset
   188
#if(PHYSFS_ARCHIVE_GRP)
dc511bf91aa0 disable unneeded physfs archives (as of bug 529)
koda
parents: 8540
diff changeset
   189
#    add_definitions(-DPHYSFS_SUPPORTS_GRP=1)
dc511bf91aa0 disable unneeded physfs archives (as of bug 529)
koda
parents: 8540
diff changeset
   190
#    set(PHYSFS_FEATURES "${PHYSFS_FEATURES} GRP")
dc511bf91aa0 disable unneeded physfs archives (as of bug 529)
koda
parents: 8540
diff changeset
   191
#endif(PHYSFS_ARCHIVE_GRP)
7768
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
   192
8542
dc511bf91aa0 disable unneeded physfs archives (as of bug 529)
koda
parents: 8540
diff changeset
   193
#option(PHYSFS_ARCHIVE_WAD "Enable Doom WAD support" TRUE)
dc511bf91aa0 disable unneeded physfs archives (as of bug 529)
koda
parents: 8540
diff changeset
   194
#if(PHYSFS_ARCHIVE_WAD)
dc511bf91aa0 disable unneeded physfs archives (as of bug 529)
koda
parents: 8540
diff changeset
   195
#    add_definitions(-DPHYSFS_SUPPORTS_WAD=1)
dc511bf91aa0 disable unneeded physfs archives (as of bug 529)
koda
parents: 8540
diff changeset
   196
#    set(PHYSFS_FEATURES "${PHYSFS_FEATURES} WAD")
dc511bf91aa0 disable unneeded physfs archives (as of bug 529)
koda
parents: 8540
diff changeset
   197
#endif(PHYSFS_ARCHIVE_WAD)
7768
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
   198
8542
dc511bf91aa0 disable unneeded physfs archives (as of bug 529)
koda
parents: 8540
diff changeset
   199
#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
   200
#if(PHYSFS_ARCHIVE_HOG)
dc511bf91aa0 disable unneeded physfs archives (as of bug 529)
koda
parents: 8540
diff changeset
   201
#    add_definitions(-DPHYSFS_SUPPORTS_HOG=1)
dc511bf91aa0 disable unneeded physfs archives (as of bug 529)
koda
parents: 8540
diff changeset
   202
#    set(PHYSFS_FEATURES "${PHYSFS_FEATURES} HOG")
dc511bf91aa0 disable unneeded physfs archives (as of bug 529)
koda
parents: 8540
diff changeset
   203
#endif(PHYSFS_ARCHIVE_HOG)
7768
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
   204
8542
dc511bf91aa0 disable unneeded physfs archives (as of bug 529)
koda
parents: 8540
diff changeset
   205
#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
   206
#if(PHYSFS_ARCHIVE_MVL)
dc511bf91aa0 disable unneeded physfs archives (as of bug 529)
koda
parents: 8540
diff changeset
   207
#    add_definitions(-DPHYSFS_SUPPORTS_MVL=1)
dc511bf91aa0 disable unneeded physfs archives (as of bug 529)
koda
parents: 8540
diff changeset
   208
#    set(PHYSFS_FEATURES "${PHYSFS_FEATURES} MVL")
dc511bf91aa0 disable unneeded physfs archives (as of bug 529)
koda
parents: 8540
diff changeset
   209
#endif(PHYSFS_ARCHIVE_MVL)
7768
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
   210
8542
dc511bf91aa0 disable unneeded physfs archives (as of bug 529)
koda
parents: 8540
diff changeset
   211
#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
   212
#if(PHYSFS_ARCHIVE_QPAK)
dc511bf91aa0 disable unneeded physfs archives (as of bug 529)
koda
parents: 8540
diff changeset
   213
#    add_definitions(-DPHYSFS_SUPPORTS_QPAK=1)
dc511bf91aa0 disable unneeded physfs archives (as of bug 529)
koda
parents: 8540
diff changeset
   214
#    set(PHYSFS_FEATURES "${PHYSFS_FEATURES} QPAK")
dc511bf91aa0 disable unneeded physfs archives (as of bug 529)
koda
parents: 8540
diff changeset
   215
#endif(PHYSFS_ARCHIVE_QPAK)
7768
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
   216
8542
dc511bf91aa0 disable unneeded physfs archives (as of bug 529)
koda
parents: 8540
diff changeset
   217
#option(PHYSFS_ARCHIVE_ISO9660 "Enable ISO9660 support" TRUE)
dc511bf91aa0 disable unneeded physfs archives (as of bug 529)
koda
parents: 8540
diff changeset
   218
#if(PHYSFS_ARCHIVE_ISO9660)
dc511bf91aa0 disable unneeded physfs archives (as of bug 529)
koda
parents: 8540
diff changeset
   219
#    add_definitions(-DPHYSFS_SUPPORTS_ISO9660=1)
dc511bf91aa0 disable unneeded physfs archives (as of bug 529)
koda
parents: 8540
diff changeset
   220
#    set(PHYSFS_FEATURES "${PHYSFS_FEATURES} CD-ROM")
dc511bf91aa0 disable unneeded physfs archives (as of bug 529)
koda
parents: 8540
diff changeset
   221
#endif(PHYSFS_ARCHIVE_ISO9660)
7768
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
   222
8526
9f2bd885d773 update cmake files to use the two libraries independently
koda
parents: 8522
diff changeset
   223
9192
a8a717cf4a66 use BUILD_SHARED_LIBS to control whether a library is shared or static, make our bundled physfs library check for this configuration
koda
parents: 9188
diff changeset
   224
##Hedgewars modifications
a8a717cf4a66 use BUILD_SHARED_LIBS to control whether a library is shared or static, make our bundled physfs library check for this configuration
koda
parents: 9188
diff changeset
   225
add_library(physfs ${PHYSFS_SRCS})
a8a717cf4a66 use BUILD_SHARED_LIBS to control whether a library is shared or static, make our bundled physfs library check for this configuration
koda
parents: 9188
diff changeset
   226
set_target_properties(physfs PROPERTIES
a8a717cf4a66 use BUILD_SHARED_LIBS to control whether a library is shared or static, make our bundled physfs library check for this configuration
koda
parents: 9188
diff changeset
   227
                          VERSION ${PHYSFS_VERSION}
a8a717cf4a66 use BUILD_SHARED_LIBS to control whether a library is shared or static, make our bundled physfs library check for this configuration
koda
parents: 9188
diff changeset
   228
                          SOVERSION ${PHYSFS_SOVERSION}
a8a717cf4a66 use BUILD_SHARED_LIBS to control whether a library is shared or static, make our bundled physfs library check for this configuration
koda
parents: 9188
diff changeset
   229
                          OUTPUT_NAME ${physfs_output_name})
a8a717cf4a66 use BUILD_SHARED_LIBS to control whether a library is shared or static, make our bundled physfs library check for this configuration
koda
parents: 9188
diff changeset
   230
target_link_libraries(physfs ${optional_library_libs} ${OTHER_LDFLAGS})
a8a717cf4a66 use BUILD_SHARED_LIBS to control whether a library is shared or static, make our bundled physfs library check for this configuration
koda
parents: 9188
diff changeset
   231
install(TARGETS physfs RUNTIME DESTINATION ${target_binary_install_dir}
a8a717cf4a66 use BUILD_SHARED_LIBS to control whether a library is shared or static, make our bundled physfs library check for this configuration
koda
parents: 9188
diff changeset
   232
                       LIBRARY DESTINATION ${target_library_install_dir}
a8a717cf4a66 use BUILD_SHARED_LIBS to control whether a library is shared or static, make our bundled physfs library check for this configuration
koda
parents: 9188
diff changeset
   233
                       ARCHIVE DESTINATION ${target_library_install_dir})
a8a717cf4a66 use BUILD_SHARED_LIBS to control whether a library is shared or static, make our bundled physfs library check for this configuration
koda
parents: 9188
diff changeset
   234
get_target_property(physfs_fullpath physfs LOCATION)
7768
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
   235
8526
9f2bd885d773 update cmake files to use the two libraries independently
koda
parents: 8522
diff changeset
   236
## added standard variables emulating the FindPhysFS.cmake ones (FORCE or cmake won't pick 'em)
9209
2c1e00a764bd nitpick
koda
parents: 9196
diff changeset
   237
set(PHYSFS_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR} CACHE STRING "Physfs include dir" FORCE)
9192
a8a717cf4a66 use BUILD_SHARED_LIBS to control whether a library is shared or static, make our bundled physfs library check for this configuration
koda
parents: 9188
diff changeset
   238
set(PHYSFS_LIBRARY ${physfs_fullpath} CACHE STRING "Physfs library path" FORCE)
8526
9f2bd885d773 update cmake files to use the two libraries independently
koda
parents: 8522
diff changeset
   239
7768
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
   240
9192
a8a717cf4a66 use BUILD_SHARED_LIBS to control whether a library is shared or static, make our bundled physfs library check for this configuration
koda
parents: 9188
diff changeset
   241
## removed language bindings and test program
8360
082ccf48bc06 simplified physfs cmake
koda
parents: 8316
diff changeset
   242
## simplified configuration output
9192
a8a717cf4a66 use BUILD_SHARED_LIBS to control whether a library is shared or static, make our bundled physfs library check for this configuration
koda
parents: 9188
diff changeset
   243
## merged shared and static library building
7768
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
   244
8542
dc511bf91aa0 disable unneeded physfs archives (as of bug 529)
koda
parents: 8540
diff changeset
   245
#message(STATUS "PhysFS will be built with ${PHYSFS_FEATURES} support")
7768
13e2037ebc79 Try using PhysicsFS.
unc0rr
parents:
diff changeset
   246