- just some buildsystem cleanups and include fixes
authorAkiko <akiko@linux-addicted.net>
Sun, 17 May 2015 08:11:32 +0000 (10:11 +0200)
committerWilken Gottwalt <wilken.gottwalt@multi-universum.de>
Sun, 17 May 2015 08:18:33 +0000 (10:18 +0200)
16 files changed:
CMakeLists.txt
bin/binaries_go_here [new file with mode: 0644]
cmake_modules/FindLua53.cmake [new file with mode: 0644]
cmake_modules/FindMYSQL.cmake
lib/libraries_go_here [new file with mode: 0644]
plugin/shared_objects_go_here [new file with mode: 0644]
server/CMakeLists.txt
server/src/CMakeLists.txt
server/src/common/CMakeLists.txt
server/src/dev-tools/CMakeLists.txt
server/src/game/CMakeLists.txt
server/src/info/CMakeLists.txt
server/src/patch/CMakeLists.txt
tools/CMakeLists.txt
tools/pak_decompress/CMakeLists.txt
tools/vfs_viewer/CMakeLists.txt

index 1181bd4..e632613 100644 (file)
@@ -1,29 +1,51 @@
-cmake_minimum_required (VERSION 2.6)
-project                (TINNS C CXX)
+CMAKE_MINIMUM_REQUIRED  (VERSION 3.0)
+PROJECT                 (TinNS)
 
-set                    (CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake_modules")
+# needed packages
+SET                     (CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake_modules")
+FIND_PACKAGE            (RT REQUIRED)
+FIND_PACKAGE            (PTHREAD REQUIRED)
+FIND_PACKAGE            (MYSQL REQUIRED)
+FIND_PACKAGE            (SQLITE3 REQUIRED)
+FIND_PACKAGE            (PCRE REQUIRED)
+FIND_PACKAGE            (ZLIB REQUIRED)
+FIND_PACKAGE            (Lua53 REQUIRED) # the lua distributions are a nightmare, here is my finder for 5.3
+FIND_PACKAGE            (Boost REQUIRED)
 
-set                    (USE_SQLITE3 false CACHE BOOL "Use SQLITE3 instead of MySQL")
-set                    (USE_MYSQL_INCLUDE_DIR false CACHE BOOL "MySQL includes in ../include/mysql/")
+# includes and outputs
+SET                     (CMAKE_INCLUDE_CURRENT_DIR on)
+INCLUDE_DIRECTORIES     (${PROJECT_SOURCE_DIR})
+SET                     (CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin)
+SET                     (CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/plugin)
+SET                     (CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
 
-add_definitions        (-std=c++0x -W -Wall -march=native -mtune=native -O2 -D_THREAD_SAFE -D_REENTRANT)
+# default configs
+SET                     (USE_SQLITE3 false CACHE BOOL "Use SQLITE3 instead of MySQL")
+SET                     (USE_MYSQL_INCLUDE_DIR true CACHE BOOL "MySQL includes in system path")
 
-if (USE_SQLITE3)
-add_definitions        (-DSQLITE3)
-endif (USE_SQLITE3)
+IF                      (USE_SQLITE3)
+ADD_DEFINITIONS             (-DSQLITE3)
+ENDIF                   (USE_SQLITE3)
 
-if (USE_MYSQL_INCLUDE_DIR)
-add_definitions        (-DMYSQL_INC_DIR)
-endif (USE_MYSQL_INCLUDE_DIR)
+IF                      (USE_MYSQL_INCLUDE_DIR)
+ADD_DEFINITIONS             (-DMYSQL_INC_DIR)
+ENDIF                   (USE_MYSQL_INCLUDE_DIR)
 
-find_package           (RT REQUIRED)
-find_package           (PTHREAD REQUIRED)
-find_package           (MYSQL REQUIRED)
-find_package           (SQLITE3 REQUIRED)
-find_package           (PCRE REQUIRED)
-find_package           (ZLIB REQUIRED)
-find_package           (Lua51 REQUIRED)
-find_package           (Boost REQUIRED)
+# compiler settings
+IF                      (${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
+MESSAGE                     ("Unix-like system: ${CMAKE_SYSTEM_NAME}")
+SET                         (CMAKE_CXX_FLAGS "-std=c++1z -pthread -fdiagnostics-color=always -W -Wall -Wextra -Os")
+SET                         (CMAKE_C_FLAGS "-std=c11 -pthread -fdiagnostics-color=always -W -Wall -Wextra -Os")
+ELSEIF                  (${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
+MESSAGE                     ("Windows-like system: ${CMAKE_SYSTEM_NAME}")
+SET                         (CMAKE_CXX_FLAGS "-std=c++1z -pthread -W -Wall -Wextra -Os")
+SET                         (CMAKE_C_FLAGS "-std=c11 -pthread -W -Wall -Wextra -Os")
+ELSE                    ()
+MESSAGE                     (FATAL_ERROR "unsupported system: ${CMAKE_SYSTEM_NAME}")
+ENDIF                   ()
 
-add_subdirectory       (server)
-add_subdirectory       (tools)
+#add_definitions         (-std=c++0x -W -Wall -march=native -mtune=native -O2 -D_THREAD_SAFE -D_REENTRANT)
+
+# source code stuff starts here
+ADD_SUBDIRECTORY        (server)
+ADD_SUBDIRECTORY        (tools)
diff --git a/bin/binaries_go_here b/bin/binaries_go_here
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/cmake_modules/FindLua53.cmake b/cmake_modules/FindLua53.cmake
new file mode 100644 (file)
index 0000000..0ee4b9f
--- /dev/null
@@ -0,0 +1,100 @@
+#.rst:
+# FindLua51
+# ---------
+#
+#
+#
+# Locate Lua library This module defines
+#
+# ::
+#
+#   LUA53_FOUND, if false, do not try to link to Lua
+#   LUA53_LIBRARIES
+#   LUA53_INCLUDE_DIR, where to find lua.h
+#   LUA53_VERSION_STRING, the version of Lua found (since CMake 2.8.8)
+#
+#
+#
+# Note that the expected include convention is
+#
+# ::
+#
+#   #include <lua.h>
+#   or
+#   #include <lua.hpp> for C++
+#
+# and not
+#
+# ::
+#
+#   #include <lua/lua.h>
+#
+# This is because, the lua location is not standardized and may exist in
+# locations other than lua/
+
+#=============================================================================
+# Copyright 2007-2009 Kitware, Inc.
+#
+# Distributed under the OSI-approved BSD License (the "License");
+# see accompanying file Copyright.txt for details.
+#
+# This software is distributed WITHOUT ANY WARRANTY; without even the
+# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+# See the License for more information.
+#=============================================================================
+# (To distribute this file outside of CMake, substitute the full
+#  License text for the above reference.)
+
+find_path(LUA53_INCLUDE_DIR lua.h lua.hpp
+  HINTS
+    ENV LUA_DIR
+  PATH_SUFFIXES include/lua53 include/lua5.3 include/lua-5.3 include/lua include
+  PATHS
+  ~/Library/Frameworks
+  /Library/Frameworks
+  /sw # Fink
+  /opt/local # DarwinPorts
+  /opt/csw # Blastwave
+  /opt
+)
+
+find_library(LUA53_LIBRARY
+  NAMES lua53 lua5.3 lua-5.3 lua
+  HINTS
+    ENV LUA_DIR
+  PATH_SUFFIXES lib
+  PATHS
+  ~/Library/Frameworks
+  /Library/Frameworks
+  /sw
+  /opt/local
+  /opt/csw
+  /opt
+)
+
+if(LUA53_LIBRARY)
+  # include the math library for Unix
+  if(UNIX AND NOT APPLE AND NOT BEOS AND NOT HAIKU)
+    find_library(LUA53_MATH_LIBRARY m)
+    set( LUA53_LIBRARIES "${LUA53_LIBRARY};${LUA53_MATH_LIBRARY}" CACHE STRING "Lua 5.3 Libraries")
+  # For Windows and Mac, don't need to explicitly include the math library
+  else()
+    set( LUA53_LIBRARIES "${LUA53_LIBRARY}" CACHE STRING "Lua 5.3 Libraries")
+  endif()
+endif()
+
+if(LUA53_INCLUDE_DIR AND EXISTS "${LUA53_INCLUDE_DIR}/lua.h")
+  file(STRINGS "${LUA53_INCLUDE_DIR}/lua.h" lua_version_str REGEX "^#define[ \t]+LUA_RELEASE[ \t]+\"Lua .+\"")
+
+  string(REGEX REPLACE "^#define[ \t]+LUA_RELEASE[ \t]+\"Lua ([^\"]+)\".*" "\\1" LUA53_VERSION_STRING "${lua_version_str}")
+  unset(lua_version_str)
+endif()
+
+include(${CMAKE_ROOT}/Modules/FindPackageHandleStandardArgs.cmake)
+# handle the QUIETLY and REQUIRED arguments and set LUA_FOUND to TRUE if
+# all listed variables are TRUE
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(Lua53
+                                  REQUIRED_VARS LUA53_LIBRARIES LUA53_INCLUDE_DIR
+                                  VERSION_VAR LUA53_VERSION_STRING)
+
+mark_as_advanced(LUA53_INCLUDE_DIR LUA53_LIBRARIES LUA53_LIBRARY LUA53_MATH_LIBRARY)
index 25a8e62..d05261a 100644 (file)
@@ -1,4 +1,4 @@
-find_path (MYSQL_INCLUDE_DIR mysql.h /usr/include)
+find_path (MYSQL_INCLUDE_DIR mysql.h /usr/include /usr/include/mysql)
 
 find_library (MYSQL_LIBRARY NAMES mysqlclient PATHS /usr/lib64 /usr/lib)
 
diff --git a/lib/libraries_go_here b/lib/libraries_go_here
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/plugin/shared_objects_go_here b/plugin/shared_objects_go_here
new file mode 100644 (file)
index 0000000..e69de29
index 2cc858d..70ac51a 100644 (file)
@@ -1 +1 @@
-add_subdirectory (src)
+ADD_SUBDIRECTORY        (src)
index e7d2c02..1ad7f2e 100644 (file)
@@ -1,8 +1,8 @@
 # move base dir to src
-include_directories (${TINNS_SOURCE_DIR}/server/src)
+INCLUDE_DIRECTORIES     (${PROJECT_SOURCE_DIR}/server/src)
 
-add_subdirectory    (common)
-add_subdirectory    (dev-tools)
-add_subdirectory    (game)
-add_subdirectory    (info)
-add_subdirectory    (patch)
+ADD_SUBDIRECTORY        (common)
+ADD_SUBDIRECTORY        (dev-tools)
+ADD_SUBDIRECTORY        (game)
+ADD_SUBDIRECTORY        (info)
+ADD_SUBDIRECTORY        (patch)
index 9ee2e65..4b49e05 100644 (file)
@@ -1,2 +1 @@
-add_library (common config.cpp console.cpp filesystem.cpp misc.cpp message.cpp netcode.cpp
-             regex++.cpp)
+ADD_LIBRARY             (common config.cpp console.cpp filesystem.cpp misc.cpp message.cpp netcode.cpp regex++.cpp)
index 7be89d7..9f60614 100644 (file)
@@ -1,2 +1,2 @@
-add_executable (getsvnrev getsvnrev.cpp)
-add_executable (cleandepfile cleandepfile.c)
+ADD_EXECUTABLE          (getsvnrev getsvnrev.cpp)
+ADD_EXECUTABLE          (cleandepfile cleandepfile.c)
index b303855..64be2d1 100644 (file)
@@ -1,47 +1,50 @@
-include_directories (${TINNS_SOURCE_DIR}/server/src/game ${LUA_INCLUDE_DIR})
+INCLUDE_DIRECTORIES     (${PROJECT_SOURCE_DIR}/server/src/game ${LUA53_INCLUDE_DIR})
 
-add_executable        (gameserver
-                      # decoder stuff
-                       decoder/msgdecoder.cpp decoder/udp_0x13.cpp decoder/udp_0x1f.cpp decoder/udp_0x22.cpp
-                       decoder/udp_0x2b.cpp decoder/udpanalyser.cpp decoder/udp_appartment.cpp decoder/udp_charmove.cpp
-                       decoder/udp_chat.cpp decoder/udp_deathrespawn.cpp decoder/udp_entityposreq.cpp
-                       decoder/udp_hack.cpp decoder/udp_helditemaction.cpp decoder/udp_0x08.cpp decoder/udp_OOO.cpp
-                       decoder/udp_itemmanualreload.cpp decoder/udp_itemmove.cpp decoder/udp_itemuse.cpp
-                       decoder/udp_killself.cpp decoder/udp_outfitter.cpp decoder/udp_packet0.cpp decoder/udp_ping.cpp
-                       decoder/udp_popupresponse.cpp decoder/udp_quickaccessbelt.cpp decoder/udp_reqinfo.cpp
-                       decoder/udp_subskill.cpp decoder/udp_sync.cpp decoder/udp_terminal.cpp decoder/udp_useobject.cpp
-                       decoder/udp_vhc.cpp decoder/udp_zoning.cpp decoder/udp_worldIDinfo.cpp decoder/udp_multipart.cpp
-                       decoder/udp_pvptrade.cpp decoder/udp_npcdialog.cpp
-                      # def file stuff
-                       def/def_actionmod.cpp def/def_ammo.cpp def/def_appartements.cpp def/def_appplaces.cpp
-                       def/def_blueprintpieces.cpp def/def_characters.cpp def/def_charaction.cpp def/def_charkinds.cpp
-                       def/def_damage.cpp def/def_drugs.cpp def/def_factions.cpp def/def_hack.cpp def/def_implants.cpp
-                       def/def_itemcontainer.cpp def/def_itemmod.cpp def/def_itemres.cpp def/def_items.cpp
-                       def/def_mission.cpp def/def_npcarmor.cpp def/def_npc.cpp def/def_npcgroupspawn.cpp
-                       def/def_outposts.cpp def/defparser.cpp def/def_recycles.cpp def/def_respawn.cpp
-                       def/def_shots.cpp def/def_skills.cpp def/def_subskills.cpp def/def_trader.cpp
-                       def/def_vehicles.cpp def/def_vehiclesits.cpp def/def_weapons.cpp def/def_weather.cpp
-                       def/def_worldfile.cpp def/def_worldmodels.cpp def/def_worlds.cpp def/gamedefs.cpp
-                       def/world_datparser.cpp def/def_scripts.cpp
-                      # gamecommands stuff
-                       gamecommands/ban.cpp gamecommands/brightness.cpp gamecommands/broadcast.cpp gamecommands/color.cpp
-                       gamecommands/debug.cpp gamecommands/effect.cpp gamecommands/givemoney.cpp gamecommands/h.cpp
-                       gamecommands/info.cpp gamecommands/npc_shop.cpp gamecommands/jail.cpp gamecommands/kick.cpp
-                       gamecommands/listbans.cpp gamecommands/online.cpp gamecommands/rawf.cpp gamecommands/recall.cpp
-                       gamecommands/remove.cpp gamecommands/setlevel.cpp gamecommands/settime.cpp
-                       gamecommands/setsubskill.cpp gamecommands/shun.cpp gamecommands/setmainskill.cpp
-                       gamecommands/skin.cpp gamecommands/spawnactor.cpp gamecommands/speed.cpp gamecommands/takemoney.cpp
-                       gamecommands/t.cpp gamecommands/teleport.cpp gamecommands/test.cpp gamecommands/unban.cpp
-                       gamecommands/unjail.cpp gamecommands/unshun.cpp gamecommands/uptime.cpp gamecommands/v.cpp
-                       gamecommands/version.cpp gamecommands/warp.cpp gamecommands/warpto.cpp gamecommands/weather.cpp
-                       gamecommands/npc.cpp
-                      # gameserver stuff
-                       globals.cpp terminal_querydb.cpp multipart.cpp accounts.cpp appartements.cpp buddylist.cpp
-                       chars.cpp chat.cpp client.cpp clientmanager.cpp commands.cpp container.cpp doortemplate.cpp
-                       furnituretemplate.cpp gameserver.cpp genreplist.cpp inventory.cpp isc.cpp item.cpp main.cpp
-                       lua_engine.cpp msgbuilder.cpp npc.cpp server.cpp skill.cpp sql.cpp subway.cpp terminal.cpp
-                       terminal_receivedb.cpp terminal_tryaccess.cpp npc_conversation.cpp terminal_updatedb.cpp
-                       vehicle.cpp vhcaccessrequest.cpp worldactors.cpp worlddatatemplate.cpp worlds.cpp zoning.cpp
-                       outpost.cpp npc_ai.cpp npctemplate.cpp)
+ADD_EXECUTABLE          (gameserver
+                        # decoder stuff
+                         decoder/msgdecoder.cpp decoder/udp_0x13.cpp decoder/udp_0x1f.cpp decoder/udp_0x22.cpp
+                         decoder/udp_0x2b.cpp decoder/udpanalyser.cpp decoder/udp_appartment.cpp
+                         decoder/udp_charmove.cpp decoder/udp_chat.cpp decoder/udp_deathrespawn.cpp
+                         decoder/udp_entityposreq.cpp decoder/udp_hack.cpp decoder/udp_helditemaction.cpp
+                         decoder/udp_0x08.cpp decoder/udp_OOO.cpp decoder/udp_itemmanualreload.cpp
+                         decoder/udp_itemmove.cpp decoder/udp_itemuse.cpp decoder/udp_killself.cpp
+                         decoder/udp_outfitter.cpp decoder/udp_packet0.cpp decoder/udp_ping.cpp
+                         decoder/udp_popupresponse.cpp decoder/udp_quickaccessbelt.cpp decoder/udp_reqinfo.cpp
+                         decoder/udp_subskill.cpp decoder/udp_sync.cpp decoder/udp_terminal.cpp
+                         decoder/udp_useobject.cpp decoder/udp_vhc.cpp decoder/udp_zoning.cpp
+                         decoder/udp_worldIDinfo.cpp decoder/udp_multipart.cpp decoder/udp_pvptrade.cpp
+                         decoder/udp_npcdialog.cpp
+                        # def file stuff
+                         def/def_actionmod.cpp def/def_ammo.cpp def/def_appartements.cpp def/def_appplaces.cpp
+                         def/def_blueprintpieces.cpp def/def_characters.cpp def/def_charaction.cpp def/def_charkinds.cpp
+                         def/def_damage.cpp def/def_drugs.cpp def/def_factions.cpp def/def_hack.cpp def/def_implants.cpp
+                         def/def_itemcontainer.cpp def/def_itemmod.cpp def/def_itemres.cpp def/def_items.cpp
+                         def/def_mission.cpp def/def_npcarmor.cpp def/def_npc.cpp def/def_npcgroupspawn.cpp
+                         def/def_outposts.cpp def/defparser.cpp def/def_recycles.cpp def/def_respawn.cpp
+                         def/def_shots.cpp def/def_skills.cpp def/def_subskills.cpp def/def_trader.cpp
+                         def/def_vehicles.cpp def/def_vehiclesits.cpp def/def_weapons.cpp def/def_weather.cpp
+                         def/def_worldfile.cpp def/def_worldmodels.cpp def/def_worlds.cpp def/gamedefs.cpp
+                         def/world_datparser.cpp def/def_scripts.cpp
+                        # gamecommands stuff
+                         gamecommands/ban.cpp gamecommands/brightness.cpp gamecommands/broadcast.cpp
+                         gamecommands/color.cpp gamecommands/debug.cpp gamecommands/effect.cpp
+                         gamecommands/givemoney.cpp gamecommands/h.cpp gamecommands/info.cpp gamecommands/npc_shop.cpp
+                         gamecommands/jail.cpp gamecommands/kick.cpp gamecommands/listbans.cpp gamecommands/online.cpp
+                         gamecommands/rawf.cpp gamecommands/recall.cpp gamecommands/remove.cpp gamecommands/setlevel.cpp
+                         gamecommands/settime.cpp gamecommands/setsubskill.cpp gamecommands/shun.cpp
+                         gamecommands/setmainskill.cpp gamecommands/skin.cpp gamecommands/spawnactor.cpp
+                         gamecommands/speed.cpp gamecommands/takemoney.cpp gamecommands/t.cpp gamecommands/teleport.cpp
+                         gamecommands/test.cpp gamecommands/unban.cpp gamecommands/unjail.cpp gamecommands/unshun.cpp
+                         gamecommands/uptime.cpp gamecommands/v.cpp gamecommands/version.cpp gamecommands/warp.cpp
+                         gamecommands/warpto.cpp gamecommands/weather.cpp gamecommands/npc.cpp
+                        # gameserver stuff
+                         globals.cpp terminal_querydb.cpp multipart.cpp accounts.cpp appartements.cpp buddylist.cpp
+                         chars.cpp chat.cpp client.cpp clientmanager.cpp commands.cpp container.cpp doortemplate.cpp
+                         furnituretemplate.cpp gameserver.cpp genreplist.cpp inventory.cpp isc.cpp item.cpp main.cpp
+                         lua_engine.cpp msgbuilder.cpp npc.cpp server.cpp skill.cpp sql.cpp subway.cpp terminal.cpp
+                         terminal_receivedb.cpp terminal_tryaccess.cpp npc_conversation.cpp terminal_updatedb.cpp
+                         vehicle.cpp vhcaccessrequest.cpp worldactors.cpp worlddatatemplate.cpp worlds.cpp zoning.cpp
+                         outpost.cpp npc_ai.cpp npctemplate.cpp)
 
-target_link_libraries (gameserver common ${MYSQL_LIBRARY} ${PCRE_LIBRARY} ${ZLIB_LIBRARY} ${RT_LIBRARY} ${LUA_LIBRARY})
+TARGET_LINK_LIBRARIES   (gameserver common ${MYSQL_LIBRARY} ${PCRE_LIBRARY} ${ZLIB_LIBRARY} ${RT_LIBRARY}
+                                           ${LUA53_LIBRARY})
index ea7f230..8962ecf 100644 (file)
@@ -1,3 +1,2 @@
-add_executable        (infoserver accounts.cpp client.cpp globals.cpp infoserver.cpp main.cpp server.cpp sql.cpp)
-
-target_link_libraries (infoserver common ${MYSQL_LIBRARY} ${PCRE_LIBRARY})
+ADD_EXECUTABLE          (infoserver accounts.cpp client.cpp globals.cpp infoserver.cpp main.cpp server.cpp sql.cpp)
+TARGET_LINK_LIBRARIES   (infoserver common ${MYSQL_LIBRARY} ${PCRE_LIBRARY})
index 00db822..3154f2b 100644 (file)
@@ -1,3 +1,2 @@
-add_executable        (patchserver client.cpp globals.cpp patchserver.cpp main.cpp server.cpp)
-
-target_link_libraries (patchserver common ${PCRE_LIBRARY} ${ZLIB_LIBRARY})
+ADD_EXECUTABLE          (patchserver client.cpp globals.cpp patchserver.cpp main.cpp server.cpp)
+TARGET_LINK_LIBRARIES   (patchserver common ${PCRE_LIBRARY} ${ZLIB_LIBRARY})
index 5147b1b..8a99738 100644 (file)
@@ -1,2 +1,2 @@
-add_subdirectory       (pak_decompress)
-add_subdirectory       (vfs_viewer)
+ADD_SUBDIRECTORY        (pak_decompress)
+ADD_SUBDIRECTORY        (vfs_viewer)
index 6ebd346..b3f2c76 100644 (file)
@@ -1,3 +1,2 @@
-add_executable         (pak_decompress pak_decompress.cpp)
-
-target_link_libraries  (pak_decompress ${ZLIB_LIBRARY})
+ADD_EXECUTABLE          (pak_decompress pak_decompress.cpp)
+TARGET_LINK_LIBRARIES   (pak_decompress ${ZLIB_LIBRARY})
index b39b75c..bba6633 100644 (file)
@@ -1,3 +1,2 @@
-add_executable        (vfs_viewer vfs_viewer.c)
-
-target_link_libraries (vfs_viewer ${ZLIB_LIBRARY})
+ADD_EXECUTABLE          (vfs_viewer vfs_viewer.c)
+TARGET_LINK_LIBRARIES   (vfs_viewer ${ZLIB_LIBRARY})