2010-06-05 17:34:55 +00:00
#########################################################################################
# streflop
2017-02-05 16:48:50 -08:00
OPTION ( FORCE_EMBEDDED_LIBS "Force use of embedded libraries' code." OFF )
2010-06-05 17:34:55 +00:00
# IMPORTANT: should come BEFORE finding packages
2017-02-05 16:48:50 -08:00
find_package ( PkgConfig REQUIRED )
IF ( FORCE_STREFLOP_SOFTWRAPPER )
pkg_search_module ( STREFLOP streflop-soft )
ELSE ( )
IF ( HAS_SSE_EXTENSIONS AND NOT ${ FORCE_MAX_SSE_LEVEL } MATCHES "0" )
pkg_search_module ( STREFLOP streflop-sse )
ELSE ( )
IF ( HAS_X87_SUPPORT )
pkg_search_module ( STREFLOP streflop-x87 )
ELSE ( )
pkg_search_module ( STREFLOP streflop-soft )
ENDIF ( )
ENDIF ( )
ENDIF ( )
IF ( NOT STREFLOP_FOUND )
pkg_search_module ( STREFLOP streflop )
ENDIF ( )
MESSAGE ( STATUS "Search for Library STREFLOP result = ${STREFLOP_FOUND} libs: ${STREFLOP_LIBRARIES} include dirs: ${STREFLOP_INCLUDE_DIRS}" )
IF ( FORCE_EMBEDDED_LIBS )
SET ( STREFLOP_FOUND OFF )
MESSAGE ( STATUS "FORCING USE of EMBEDDED Libraries..." )
ENDIF ( )
2015-09-27 19:46:35 +02:00
IF ( WANT_USE_STREFLOP )
2017-02-05 16:48:50 -08:00
IF ( NOT STREFLOP_FOUND )
ADD_SUBDIRECTORY ( sources/streflop )
ELSE ( )
INCLUDE_DIRECTORIES ( ${ STREFLOP_INCLUDE_DIRS } ${ STREFLOP_INCLUDE_DIRS } /streflop )
SET ( EXTERNAL_LIBS ${ EXTERNAL_LIBS } ${ STREFLOP_LIBRARIES } )
ADD_DEFINITIONS ( "-DUSE_STREFLOP_PKG" )
ENDIF ( )
2011-12-16 06:24:21 +00:00
ENDIF ( )
2010-06-05 17:34:55 +00:00
#########################################################################################
# common libraries
SET ( EXTERNAL_LIBS "" )
2011-10-17 16:59:22 +00:00
SET ( TARGET_NAME "libmegaglest" )
2010-06-05 17:34:55 +00:00
2012-10-26 00:05:44 +00:00
IF ( BUILD_MEGAGLEST_MODEL_VIEWER OR BUILD_MEGAGLEST_MAP_EDITOR OR BUILD_MEGAGLEST )
2011-10-17 16:59:22 +00:00
MESSAGE ( STATUS "Will try to build MegaGlest shared library" )
INCLUDE ( CheckIncludeFiles )
IF ( WIN32 )
SET ( CMAKE_LIBRARY_PATH ${ CMAKE_LIBRARY_PATH }
$ { P R O J E C T _ S O U R C E _ D I R } / s o u r c e / w i n 3 2 _ d e p s / l i b
$ { P R O J E C T _ S O U R C E _ D I R } / s o u r c e / w i n 3 2 _ d e p s / x e r c e s - c - s r c _ 2 _ 8 _ 0 / l i b
$ { P R O J E C T _ S O U R C E _ D I R } / s o u r c e / w i n 3 2 _ d e p s / w x W i d g e t s - 2 . 8 . 1 0 / l i b )
INCLUDE_DIRECTORIES ( ${ PROJECT_SOURCE_DIR } /source/win32_deps/include )
INCLUDE_DIRECTORIES ( ${ PROJECT_SOURCE_DIR } /source/win32_deps/openal-soft-1.12.854/include )
INCLUDE_DIRECTORIES ( ${ PROJECT_SOURCE_DIR } /source/win32_deps/openal-soft-1.12.854 )
INCLUDE_DIRECTORIES ( ${ PROJECT_SOURCE_DIR } /source/win32_deps/xerces-c-src_2_8_0/include )
INCLUDE_DIRECTORIES ( ${ PROJECT_SOURCE_DIR } /source/win32_deps/libogg-1.2.1/include )
INCLUDE_DIRECTORIES ( ${ PROJECT_SOURCE_DIR } /source/win32_deps/lua-5.1/src )
INCLUDE_DIRECTORIES ( ${ PROJECT_SOURCE_DIR } /source/win32_deps/jpeg-8b )
INCLUDE_DIRECTORIES ( ${ PROJECT_SOURCE_DIR } /source/win32_deps/lpng141 )
INCLUDE_DIRECTORIES ( ${ PROJECT_SOURCE_DIR } /source/win32_deps/zlib-1.2.5 )
INCLUDE_DIRECTORIES ( ${ PROJECT_SOURCE_DIR } /source/win32_deps/curl-7.21.3/include )
2015-09-18 19:17:52 +02:00
INCLUDE_DIRECTORIES ( ${ PROJECT_SOURCE_DIR } /source/win32_deps/ ${ SDL_WINDOWS_DIR_DINC } /include )
2011-10-17 16:59:22 +00:00
INCLUDE_DIRECTORIES ( ${ PROJECT_SOURCE_DIR } /source/win32_deps/wxWidgets-2.8.10/include )
link_directories ( ${ PROJECT_SOURCE_DIR } /source/win32_deps/lib )
link_directories ( ${ PROJECT_SOURCE_DIR } /source/win32_deps/xerces-c-src_2_8_0/lib )
link_directories ( ${ PROJECT_SOURCE_DIR } /source/win32_deps/wxWidgets-2.8.10/lib )
INCLUDE_DIRECTORIES ( ${ PROJECT_SOURCE_DIR } /source/win32_deps/include )
INCLUDE_DIRECTORIES ( ${ PROJECT_SOURCE_DIR } /source/shared_lib/include/platform/posix )
INCLUDE_DIRECTORIES ( ${ PROJECT_SOURCE_DIR } /source/shared_lib/include/platform/win32 )
ENDIF ( )
2015-09-27 19:46:35 +02:00
IF ( WANT_USE_OpenSSL )
FIND_PACKAGE ( OpenSSL )
IF ( OPENSSL_FOUND )
INCLUDE_DIRECTORIES ( ${ OPENSSL_INCLUDE_DIR } )
ELSE ( )
MESSAGE ( STATUS "**NOTE: OpenSSL is usually not required." )
ENDIF ( )
2015-06-13 00:09:56 +02:00
ENDIF ( )
2011-10-17 16:59:22 +00:00
FIND_PACKAGE ( CURL REQUIRED )
2015-09-27 19:46:35 +02:00
INCLUDE ( ${ CMAKE_SOURCE_DIR } /mk/cmake/Modules/CurlGetConfig.cmake )
2011-10-17 16:59:22 +00:00
INCLUDE_DIRECTORIES ( ${ CURL_INCLUDE_DIRS } )
IF ( UNIX )
2015-06-13 00:09:56 +02:00
IF ( NOT OPENSSL_FOUND )
# default
SET ( EXTERNAL_LIBS ${ EXTERNAL_LIBS } ${ CURL_LIBRARIES } )
ELSE ( )
# mageia
2016-03-05 13:57:08 +01:00
SET ( EXTERNAL_LIBS ${ EXTERNAL_LIBS } ${ CURL_LIBRARIES } ${ OPENSSL_LIBRARIES } )
2015-06-13 00:09:56 +02:00
ENDIF ( )
2011-10-17 16:59:22 +00:00
ENDIF ( )
2015-09-18 19:17:52 +02:00
FIND_PACKAGE ( ${ SDL_VERSION_NAME } REQUIRED )
INCLUDE_DIRECTORIES ( ${ ${SDL_VERSION_NAME } _INCLUDE_DIR} )
2011-10-17 16:59:22 +00:00
IF ( UNIX )
2015-09-18 19:17:52 +02:00
SET ( EXTERNAL_LIBS ${ EXTERNAL_LIBS } ${ ${SDL_VERSION_NAME } _LIBRARY} )
2011-10-17 16:59:22 +00:00
ENDIF ( )
FIND_PACKAGE ( OpenGL REQUIRED )
INCLUDE_DIRECTORIES ( ${ OPENGL_INCLUDE_DIR } )
IF ( UNIX )
SET ( EXTERNAL_LIBS ${ EXTERNAL_LIBS } ${ OPENGL_LIBRARY } )
ENDIF ( )
2015-06-05 01:54:05 +02:00
FIND_PACKAGE ( X11 REQUIRED )
INCLUDE_DIRECTORIES ( ${ X11_INCLUDE_DIR } )
IF ( UNIX )
2015-05-13 04:22:45 +10:00
SET ( EXTERNAL_LIBS ${ EXTERNAL_LIBS } ${ X11_LIBRARIES } )
2015-06-05 01:54:05 +02:00
ENDIF ( )
2014-01-25 18:12:53 -08:00
2015-09-27 19:46:35 +02:00
IF ( WANT_USE_XercesC )
2014-01-25 18:12:53 -08:00
FIND_PACKAGE ( XercesC REQUIRED )
INCLUDE_DIRECTORIES ( ${ XERCESC_INCLUDE_DIR } )
IF ( UNIX )
SET ( EXTERNAL_LIBS ${ EXTERNAL_LIBS } ${ XERCESC_LIBRARY } )
ENDIF ( )
ENDIF ( )
2011-10-17 16:59:22 +00:00
FIND_PACKAGE ( OpenAL REQUIRED )
INCLUDE_DIRECTORIES ( ${ OPENAL_INCLUDE_DIR } )
IF ( UNIX )
SET ( EXTERNAL_LIBS ${ EXTERNAL_LIBS } ${ OPENAL_LIBRARY } )
ENDIF ( )
2012-11-14 19:20:08 +00:00
FIND_PACKAGE ( LUA REQUIRED )
INCLUDE_DIRECTORIES ( ${ LUA_INCLUDE_DIR } )
IF ( UNIX )
2012-11-30 23:40:27 +00:00
SET ( EXTERNAL_LIBS ${ EXTERNAL_LIBS } ${ LUA_LIBRARIES } ${ CMAKE_DL_LIBS } )
2012-04-26 16:17:12 +00:00
ENDIF ( )
2011-10-17 16:59:22 +00:00
FIND_PACKAGE ( JPEG REQUIRED )
INCLUDE_DIRECTORIES ( ${ JPEG_INCLUDE_DIR } )
IF ( UNIX )
SET ( EXTERNAL_LIBS ${ EXTERNAL_LIBS } ${ JPEG_LIBRARY } )
ENDIF ( )
2015-09-27 19:46:35 +02:00
2011-10-17 16:59:22 +00:00
FIND_PACKAGE ( PNG REQUIRED )
INCLUDE_DIRECTORIES ( ${ PNG_INCLUDE_DIR } )
IF ( UNIX )
SET ( EXTERNAL_LIBS ${ EXTERNAL_LIBS } ${ PNG_LIBRARY } )
ENDIF ( )
2015-09-27 19:46:35 +02:00
OPTION ( WANT_USE_FontConfig "use the library fontconfig" ON )
IF ( WANT_USE_FontConfig )
2012-10-30 19:47:31 +00:00
FIND_PACKAGE ( FontConfig )
IF ( FONTCONFIG_FOUND )
MESSAGE ( STATUS "**NOTE: FontConfig support was detected and enabled." )
SET ( HAVE_FONTCONFIG 1 )
ADD_DEFINITIONS ( -DHAVE_FONTCONFIG )
INCLUDE_DIRECTORIES ( ${ FONTCONFIG_INCLUDE_DIR } )
SET ( EXTERNAL_LIBS ${ EXTERNAL_LIBS } ${ FONTCONFIG_LIBRARIES } )
ENDIF ( FONTCONFIG_FOUND )
ENDIF ( )
2011-10-17 16:59:22 +00:00
2015-09-27 19:46:35 +02:00
OPTION ( WANT_USE_FTGL "Use libFTGL for on-screen fonts (found on your system)" ON )
find_package ( Freetype REQUIRED )
include_directories ( ${ FREETYPE_INCLUDE_DIRS } )
2011-10-17 16:59:22 +00:00
FIND_PACKAGE ( FTGL )
2015-09-27 19:46:35 +02:00
IF ( WANT_USE_FTGL )
2011-10-17 16:59:22 +00:00
if ( FTGL_FOUND )
MESSAGE ( STATUS "**NOTE: FTGL font support was detected and enabled." )
2015-09-27 19:46:35 +02:00
ADD_DEFINITIONS ( -DUSE_FTGL )
INCLUDE_DIRECTORIES ( ${ FTGL_INCLUDE_DIR } )
IF ( UNIX )
SET ( EXTERNAL_LIBS ${ EXTERNAL_LIBS } ${ FTGL_LIBRARY } )
ENDIF ( )
2011-10-17 16:59:22 +00:00
else ( )
2015-09-27 19:46:35 +02:00
MESSAGE ( "**NOTE: Warning! FTGL has been enabled but not detected. Your compilation will probably break. Turn off FTGL support by setting WANT_USE_FTGL to false, or visit http://ftgl.wiki.sourceforge.net/ for help on installing FTGL." )
2011-10-17 16:59:22 +00:00
endif ( )
ELSE ( )
IF ( FTGL_FOUND )
2015-09-27 19:46:35 +02:00
MESSAGE ( STATUS "**NOTE: Warning: FTGL font support was detected but NOT enabled. You can enable it by setting WANT_USE_FTGL=true" )
2011-10-17 16:59:22 +00:00
ELSE ( )
MESSAGE ( STATUS "**NOTE: Warning: FTGL font support was not detected. Visit http://ftgl.wiki.sourceforge.net/ for help on installing FTGL." )
ENDIF ( )
2015-09-27 19:46:35 +02:00
ENDIF ( )
2011-10-17 16:59:22 +00:00
2015-09-27 19:46:35 +02:00
IF ( NOT FREETYPE_FOUND )
FIND_PACKAGE ( Freetype REQUIRED )
INCLUDE_DIRECTORIES ( ${ FREETYPE_INCLUDE_DIRS } )
ENDIF ( )
2011-12-16 05:30:46 +00:00
IF ( UNIX )
SET ( EXTERNAL_LIBS ${ EXTERNAL_LIBS } ${ FREETYPE_LIBRARY } )
ENDIF ( )
2011-11-18 08:42:50 +00:00
FIND_PACKAGE ( GLEW REQUIRED )
2015-09-22 00:52:09 +02:00
INCLUDE_DIRECTORIES ( ${ GLEW_INCLUDE_DIRS } )
2011-11-18 08:42:50 +00:00
IF ( UNIX )
2015-09-22 00:52:09 +02:00
SET ( EXTERNAL_LIBS ${ EXTERNAL_LIBS } ${ GLEW_LIBRARIES } )
2011-11-18 08:42:50 +00:00
ENDIF ( )
2011-11-18 00:28:45 +00:00
2015-09-27 19:46:35 +02:00
IF ( VLC_MIN_VERSION_MG )
SET ( LIBVLC_MIN_VERSION "${VLC_MIN_VERSION_MG}" )
ELSE ( )
SET ( LIBVLC_MIN_VERSION "1.1.0" )
ENDIF ( )
2016-01-18 20:59:21 +01:00
IF ( WANT_USE_VLC )
FIND_PACKAGE ( LIBVLC )
MESSAGE ( STATUS "LIBVLC version: ${LIBVLC_VERSION}" )
ENDIF ( )
IF ( LIBVLC_FOUND AND NOT LIBVLC_VERSION STRLESS "${LIBVLC_MIN_VERSION}" )
MESSAGE ( STATUS "**NOTE: LIBVLC found so videos are supported." )
INCLUDE_DIRECTORIES ( ${ LIBVLC_INCLUDE_DIR } )
IF ( UNIX )
SET ( EXTERNAL_LIBS ${ EXTERNAL_LIBS } ${ LIBVLCCORE_LIBRARY } ${ LIBVLC_LIBRARY } )
ADD_DEFINITIONS ( -DHAS_LIBVLC )
ENDIF ( )
2012-05-14 15:57:50 +00:00
IF ( LIBVLC_VERSION_PRE_V2 )
ADD_DEFINITIONS ( -DLIBVLC_VERSION_PRE_2 )
ENDIF ( )
2012-05-14 21:09:44 +00:00
IF ( LIBVLC_VERSION_PRE_1_1_13 )
ADD_DEFINITIONS ( -DLIBVLC_VERSION_PRE_1_1_13 )
ENDIF ( )
2016-01-18 20:59:21 +01:00
ELSE ( )
IF ( WANT_USE_VLC )
MESSAGE ( STATUS "**WARNING: LIBVLC NOT found so videos are NOT supported." )
2012-11-14 19:20:08 +00:00
ELSE ( )
MESSAGE ( STATUS "LIBVLC disabled so videos are NOT supported." )
ENDIF ( )
2016-01-18 20:59:21 +01:00
ENDIF ( )
2012-05-12 20:33:18 +00:00
2015-09-27 19:46:35 +02:00
if ( WANT_USE_FriBiDi )
find_package ( FriBiDi )
if ( FRIBIDI_FOUND )
add_definitions ( -DHAVE_FRIBIDI )
2012-12-27 08:24:30 +00:00
2015-09-27 19:46:35 +02:00
include_directories ( ${ FRIBIDI_INCLUDE_DIR } )
SET ( EXTERNAL_LIBS ${ EXTERNAL_LIBS } ${ FRIBIDI_LIBRARIES } )
2012-12-27 08:24:30 +00:00
2015-09-27 19:46:35 +02:00
else ( )
message ( "Could not find FriBiDi. Disabling FriBiDi support." )
endif ( )
2012-12-27 08:24:30 +00:00
endif ( )
2015-09-27 19:46:35 +02:00
if ( WANT_USE_GoogleBreakpad )
find_package ( GoogleBreakpad )
if ( BREAKPAD_EXCEPTION_HANDLER_FOUND AND BREAKPAD_EXCEPTION_HANDLER_LIBRARIES )
add_definitions ( -DHAVE_GOOGLE_BREAKPAD )
2013-02-01 02:27:01 +00:00
2015-09-27 19:46:35 +02:00
#include_directories( ${BREAKPAD_EXCEPTION_HANDLER_INCLUDE_DIR} )
#SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${BREAKPAD_EXCEPTION_HANDLER_LIBRARIES})
2013-02-01 02:27:01 +00:00
2015-09-27 19:46:35 +02:00
else ( )
message ( STATUS "** WARNING: Could not find GoogleBreakpad. Disabling GoogleBreakpad support." )
endif ( )
2013-02-01 02:27:01 +00:00
endif ( )
2011-10-17 16:59:22 +00:00
#########################################################################################
# megaglest lib
SET ( DIRS_WITH_SRC
2017-02-05 16:48:50 -08:00
c o m p r e s s i o n
2011-10-17 16:59:22 +00:00
f e a t h e r y _ f t p
g l e w
g r a p h i c s
g r a p h i c s / g l
l u a
m a p
p l a t f o r m / c o m m o n
s o u n d
s o u n d / o p e n a l
u t i l
x m l )
2017-02-05 16:48:50 -08:00
IF ( WANT_USE_STREFLOP AND NOT STREFLOP_FOUND )
2011-12-16 06:24:21 +00:00
SET ( DIRS_WITH_SRC
2017-02-05 16:48:50 -08:00
$ { D I R S _ W I T H _ S R C }
2011-12-16 06:24:21 +00:00
s t r e f l o p
2012-02-11 15:20:40 +00:00
s t r e f l o p / l i b m _ f l t 3 2 _ s o u r c e
2017-02-05 16:48:50 -08:00
s t r e f l o p / s o f t f l o a t )
2011-12-16 06:24:21 +00:00
ENDIF ( )
2017-02-05 16:48:50 -08:00
2015-10-21 18:11:19 -07:00
IF ( FORCE_EMBEDDED_LIBS )
SET ( FORCE_USE_EMBEDDED_Miniupnpc ON )
ELSE ( )
OPTION ( FORCE_USE_EMBEDDED_Miniupnpc "Use embedded to source code version of miniupnpc" OFF )
ENDIF ( )
IF ( NOT FORCE_USE_EMBEDDED_Miniupnpc )
2015-09-27 19:46:35 +02:00
FIND_PACKAGE ( Miniupnpc )
2015-10-21 18:11:19 -07:00
ENDIF ( )
2011-10-17 16:59:22 +00:00
if ( NOT MINIUPNP_FOUND )
2015-09-27 19:46:35 +02:00
if ( NOT FORCE_USE_EMBEDDED_Miniupnpc )
MESSAGE ( STATUS "*** Using EMBEDDED miniupnpc since dev system does not have it... MINIUPNP_FOUND [${MINIUPNP_FOUND}]" )
else ( )
2015-10-21 18:11:19 -07:00
MESSAGE ( STATUS "*** Using EMBEDDED miniupnpc because it was forced by option" )
2015-09-27 19:46:35 +02:00
endif ( )
2011-10-17 16:59:22 +00:00
2012-12-27 18:59:38 +00:00
if ( NOT WIN32 )
add_definitions ( -DMINIUPNPC_SET_SOCKET_TIMEOUT )
2013-11-09 18:33:19 +00:00
add_definitions ( -D_BSD_SOURCE )
2012-12-27 18:59:38 +00:00
2013-11-09 18:33:19 +00:00
if ( CMAKE_SYSTEM_NAME STREQUAL "Darwin" )
add_definitions ( -DMACOSX -D_DARWIN_C_SOURCE )
else ( )
add_definitions ( -D_POSIX_C_SOURCE=1 )
endif ( )
endif ( )
2013-11-09 18:10:41 +00:00
2011-10-17 16:59:22 +00:00
SET ( DIRS_WITH_SRC ${ DIRS_WITH_SRC } platform/miniupnpc )
else ( )
2013-06-21 19:19:38 +00:00
MESSAGE ( STATUS "*** Using miniupnpc lib found in [${MINIUPNP_INCLUDE_DIR}] MINIUPNP_FOUND [${MINIUPNP_FOUND}] MINIUPNP_LIBRARY [${MINIUPNP_LIBRARY}]" )
2011-10-17 16:59:22 +00:00
INCLUDE_DIRECTORIES ( ${ MINIUPNP_INCLUDE_DIR } )
SET ( EXTERNAL_LIBS ${ EXTERNAL_LIBS } ${ MINIUPNP_LIBRARY } )
endif ( )
2011-10-12 22:04:00 +00:00
2012-06-05 22:29:43 +00:00
IF ( MINIUPNPC_VERSION_PRE1_5 )
ADD_DEFINITIONS ( -DMINIUPNPC_VERSION_PRE1_5 )
message ( STATUS "Adding macro for miniupnpc version: pre v1.5" )
ENDIF ( )
IF ( MINIUPNPC_VERSION_PRE1_6 )
ADD_DEFINITIONS ( -DMINIUPNPC_VERSION_PRE1_6 )
message ( STATUS "Adding macro for miniupnpc version: pre v1.6" )
ENDIF ( )
2012-12-26 01:11:11 +00:00
IF ( MINIUPNPC_VERSION_PRE1_7 )
ADD_DEFINITIONS ( -DMINIUPNPC_VERSION_PRE1_7 )
message ( STATUS "Adding macro for miniupnpc version: pre v1.7" )
ENDIF ( )
IF ( NOT MINIUPNPC_VERSION_PRE1_5 AND NOT MINIUPNPC_VERSION_PRE1_6 AND NOT MINIUPNPC_VERSION_PRE1_7 )
2012-09-22 23:18:26 +00:00
message ( STATUS "**No macros required for miniupnpc version" )
2012-06-05 22:29:43 +00:00
ENDIF ( )
2011-10-17 16:59:22 +00:00
IF ( APPLE )
2015-09-18 19:17:52 +02:00
SET ( DIRS_WITH_SRC ${ DIRS_WITH_SRC } platform/ ${ SDL_VERSION_SNAME } )
2011-10-17 16:59:22 +00:00
SET ( DIRS_WITH_SRC ${ DIRS_WITH_SRC } platform/posix )
SET ( DIRS_WITH_SRC ${ DIRS_WITH_SRC } platform/macosx )
ELSEIF ( WIN32 )
SET ( DIRS_WITH_SRC ${ DIRS_WITH_SRC } platform/win32 )
SET ( DIRS_WITH_SRC ${ DIRS_WITH_SRC } ${ PROJECT_SOURCE_DIR } /source/win32_deps/src )
ELSE ( )
2015-09-18 19:17:52 +02:00
SET ( DIRS_WITH_SRC ${ DIRS_WITH_SRC } platform/ ${ SDL_VERSION_SNAME } )
2011-10-17 16:59:22 +00:00
SET ( DIRS_WITH_SRC ${ DIRS_WITH_SRC } platform/posix )
SET ( DIRS_WITH_SRC ${ DIRS_WITH_SRC } platform/unix )
ENDIF ( )
2010-06-05 17:34:55 +00:00
2011-10-17 16:59:22 +00:00
SET ( MG_INCLUDES_ROOT "include/" )
SET ( MG_SOURCES_ROOT "sources/" )
SET ( MG_INCLUDE_FILES "" )
SET ( MG_SOURCE_FILES "" )
2015-09-18 19:17:52 +02:00
INCLUDE_DIRECTORIES ( ${ MG_INCLUDES_ROOT } platform/ ${ SDL_VERSION_SNAME } )
2012-03-14 21:52:13 +00:00
INCLUDE_DIRECTORIES ( ${ MG_INCLUDES_ROOT } xml/rapidxml )
2013-05-01 20:56:19 +00:00
INCLUDE_DIRECTORIES ( "sources/" )
2011-10-17 16:59:22 +00:00
2015-09-27 19:46:35 +02:00
OPTION ( WANT_USE_Ircclient "Enable libircclient support" ON )
2015-10-21 18:11:19 -07:00
IF ( FORCE_EMBEDDED_LIBS )
SET ( FORCE_USE_EMBEDDED_Ircclient ON )
ELSE ( )
OPTION ( FORCE_USE_EMBEDDED_Ircclient "Use embedded to source code version of ircclient" OFF )
ENDIF ( )
2011-10-17 16:59:22 +00:00
2015-09-27 19:46:35 +02:00
IF ( WANT_USE_Ircclient )
2013-03-06 00:47:21 +00:00
#IF(NOT WANT_STATIC_LIBS)
2015-09-27 19:46:35 +02:00
IF ( NOT FORCE_USE_EMBEDDED_Ircclient )
2015-04-29 20:23:03 +02:00
MESSAGE ( STATUS "*** Searching for libircclient since WANT_STATIC_LIBS is: ${WANT_STATIC_LIBS} ..." )
FIND_PACKAGE ( Ircclient )
ENDIF ( )
2013-01-08 06:59:53 +00:00
2015-09-27 19:46:35 +02:00
if ( NOT IRCCLIENT_FOUND OR FORCE_USE_EMBEDDED_Ircclient )
if ( NOT FORCE_USE_EMBEDDED_Ircclient )
2015-04-29 20:23:03 +02:00
MESSAGE ( STATUS "*** Using EMBEDDED libircclient since this system does not have it... IRCCLIENT_FOUND [${IRCCLIENT_FOUND}]" )
else ( )
2015-10-21 18:11:19 -07:00
MESSAGE ( STATUS "*** Using EMBEDDED libircclient because it was forced by option" )
2015-04-29 20:23:03 +02:00
endif ( )
2013-01-08 06:59:53 +00:00
SET ( MG_SOURCE_FILES ${ MG_SOURCE_FILES } ${ PROJECT_SOURCE_DIR } /source/shared_lib/sources/libircclient/src/libircclient.c )
INCLUDE_DIRECTORIES ( ${ PROJECT_SOURCE_DIR } /source/shared_lib/include/libircclient/include )
else ( )
2013-06-21 19:24:59 +00:00
MESSAGE ( STATUS "*** Using libircclient found in [${IRCCLIENT_INCLUDE_DIR}] IRCCLIENT_FOUND [${IRCCLIENT_FOUND}] IRCCLIENT_LIBRARY [${IRCCLIENT_LIBRARY}]" )
2013-01-08 06:59:53 +00:00
INCLUDE_DIRECTORIES ( ${ IRCCLIENT_INCLUDE_DIR } )
SET ( EXTERNAL_LIBS ${ EXTERNAL_LIBS } ${ IRCCLIENT_LIBRARY } )
endif ( )
set ( CMAKE_REQUIRED_INCLUDES "${IRCCLIENT_INCLUDE_DIR}" )
set ( CMAKE_REQUIRED_LIBRARIES "${IRCCLIENT_LIBRARY}" )
include ( CheckCXXSourceRuns )
check_cxx_source_runs ( "
#include <stdio.h>
#include <stdlib.h>
#include <libircclient.h>
i n t main ( )
{
u n s i g n e d i n t h i g h = 0 ;
u n s i g n e d i n t l o w = 0 ;
irc_get_version ( &high,&low ) ;
if ( ( high == 1 && low >= 6 ) || ( high > 1 ) ) {
r e t u r n 0 ;
}
t h r o w 1 ;
} "
H A S _ L I B I R C C L I E N T _ 1 _ 6 )
IF ( HAS_LIBIRCCLIENT_1_6 )
message ( STATUS "Found HAS_LIBIRCCLIENT_1_6: ${HAS_LIBIRCCLIENT_1_6}" )
ELSE ( )
ADD_DEFINITIONS ( -DLIBIRCCLIENT_PRE1_6 )
ENDIF ( )
else ( )
message ( STATUS "****WARNING DISABLING libircclient!!" )
ADD_DEFINITIONS ( -DDISABLE_IRCCLIENT )
endif ( )
2012-01-23 20:36:15 +00:00
2011-10-17 16:59:22 +00:00
IF ( WIN32 )
SET ( MG_SOURCE_FILES ${ MG_SOURCE_FILES } ${ PROJECT_SOURCE_DIR } /source/shared_lib/sources/platform/posix/socket.cpp )
SET ( MG_SOURCE_FILES ${ MG_SOURCE_FILES } ${ PROJECT_SOURCE_DIR } /source/shared_lib/sources/platform/posix/ircclient.cpp )
SET ( MG_SOURCE_FILES ${ MG_SOURCE_FILES } ${ PROJECT_SOURCE_DIR } /source/shared_lib/sources/platform/posix/miniftpserver.cpp )
SET ( MG_SOURCE_FILES ${ MG_SOURCE_FILES } ${ PROJECT_SOURCE_DIR } /source/shared_lib/sources/platform/posix/miniftpclient.cpp )
2015-09-18 19:17:52 +02:00
SET ( MG_SOURCE_FILES ${ MG_SOURCE_FILES } ${ PROJECT_SOURCE_DIR } /source/shared_lib/sources/platform/ ${ SDL_VERSION_SNAME } /gl_wrap.cpp )
SET ( MG_SOURCE_FILES ${ MG_SOURCE_FILES } ${ PROJECT_SOURCE_DIR } /source/shared_lib/sources/platform/ ${ SDL_VERSION_SNAME } /thread.cpp )
SET ( MG_SOURCE_FILES ${ MG_SOURCE_FILES } ${ PROJECT_SOURCE_DIR } /source/shared_lib/sources/platform/ ${ SDL_VERSION_SNAME } /window.cpp )
SET ( MG_SOURCE_FILES ${ MG_SOURCE_FILES } ${ PROJECT_SOURCE_DIR } /source/shared_lib/sources/platform/ ${ SDL_VERSION_SNAME } /window_gl.cpp )
2011-10-17 16:59:22 +00:00
SET ( MG_SOURCE_FILES ${ MG_SOURCE_FILES } ${ PROJECT_SOURCE_DIR } /source/win32_deps/src/glprocs.c )
ENDIF ( )
2010-06-05 17:34:55 +00:00
2011-10-17 16:59:22 +00:00
FOREACH ( DIR IN LISTS DIRS_WITH_SRC )
set ( INCLUDE_DIR_TO_GLOB ${ MG_INCLUDES_ROOT } ${ DIR } )
INCLUDE_DIRECTORIES ( ${ INCLUDE_DIR_TO_GLOB } )
IF ( APPLE )
#MESSAGE(STATUS "INCLUDE_DIR_TO_GLOB: ${INCLUDE_DIR_TO_GLOB}")
FILE ( GLOB INC_FILES_FROM_THIS_DIR ${ INCLUDE_DIR_TO_GLOB } /*.h )
#MESSAGE(STATUS "INCLUDE FILES GLOBBED: ${INC_FILES_FROM_THIS_DIR}")
SET ( MG_INCLUDE_FILES ${ MG_INCLUDE_FILES } ${ INC_FILES_FROM_THIS_DIR } )
ENDIF ( APPLE )
set ( SRC_DIR_TO_GLOB ${ MG_SOURCES_ROOT } ${ DIR } )
#MESSAGE(STATUS "SRC_DIR_TO_GLOB: ${SRC_DIR_TO_GLOB}")
FILE ( GLOB SRC_FILES_FROM_THIS_DIR ${ SRC_DIR_TO_GLOB } /*.cpp )
#MESSAGE(STATUS "SRC_FILES_FROM_THIS_DIR: ${SRC_FILES_FROM_THIS_DIR}")
SET ( MG_SOURCE_FILES ${ MG_SOURCE_FILES } ${ SRC_FILES_FROM_THIS_DIR } )
2010-12-11 06:32:21 +00:00
2011-10-17 16:59:22 +00:00
set ( SRC_DIR_TO_GLOB ${ MG_SOURCES_ROOT } ${ DIR } )
#MESSAGE(STATUS "SRC_DIR_TO_GLOB: ${SRC_DIR_TO_GLOB}")
FILE ( GLOB SRC_FILES_FROM_THIS_DIR ${ SRC_DIR_TO_GLOB } /*.c )
#MESSAGE(STATUS "SRC_FILES_FROM_THIS_DIR: ${SRC_FILES_FROM_THIS_DIR}")
SET ( MG_SOURCE_FILES ${ MG_SOURCE_FILES } ${ SRC_FILES_FROM_THIS_DIR } )
IF ( APPLE )
FILE ( GLOB SRC_FILES_FROM_THIS_DIR ${ SRC_DIR_TO_GLOB } /*.mm )
#MESSAGE(STATUS "SRC_FILES_FROM_THIS_DIR: ${SRC_FILES_FROM_THIS_DIR}")
SET ( MG_SOURCE_FILES ${ MG_SOURCE_FILES } ${ SRC_FILES_FROM_THIS_DIR } )
FILE ( GLOB SRC_FILES_FROM_THIS_DIR ${ SRC_DIR_TO_GLOB } /*.m )
#MESSAGE(STATUS "SRC_FILES_FROM_THIS_DIR: ${SRC_FILES_FROM_THIS_DIR}")
SET ( MG_SOURCE_FILES ${ MG_SOURCE_FILES } ${ SRC_FILES_FROM_THIS_DIR } )
ENDIF ( APPLE )
ENDFOREACH ( DIR )
#MESSAGE(STATUS "Source files: ${MG_INCLUDE_FILES}")
#MESSAGE(STATUS "Source files: ${MG_SOURCE_FILES}")
#MESSAGE(STATUS "Include dirs: ${INCLUDE_DIRECTORIES}")
2010-09-16 15:15:42 +00:00
IF ( APPLE )
2011-10-17 16:59:22 +00:00
SET ( PLATFORM_SPECIFIC_DEFINES "-DHAVE_SYS_IOCTL_H" )
ELSEIF ( WIN32 )
SET ( PLATFORM_SPECIFIC_DEFINES "-DX11_AVAILABLE" )
ELSE ( )
SET ( PLATFORM_SPECIFIC_DEFINES "-DX11_AVAILABLE -DHAVE_SYS_IOCTL_H" )
ENDIF ( )
SET_SOURCE_FILES_PROPERTIES ( ${ MG_SOURCE_FILES } PROPERTIES COMPILE_FLAGS
" $ { P L A T F O R M _ S P E C I F I C _ D E F I N E S } $ { S T R E F L O P _ P R O P E R T I E S } $ { C X X F L A G S } " )
2010-09-16 15:15:42 +00:00
2011-10-17 16:59:22 +00:00
SET_SOURCE_FILES_PROPERTIES ( ${ MG_INCLUDE_FILES } PROPERTIES HEADER_FILE_ONLY 1 )
2010-12-11 12:53:38 +00:00
2011-10-17 16:59:22 +00:00
IF ( NOT WIN32 )
ADD_LIBRARY ( ${ TARGET_NAME } STATIC ${ MG_SOURCE_FILES } ${ MG_INCLUDE_FILES } )
2015-01-31 10:30:19 +01:00
#MESSAGE(STATUS "Building shared game library as a STATIC library and saving to [${LIBRARY_OUTPUT_PATH}]")
2011-10-17 16:59:22 +00:00
ELSE ( )
SET ( LIBRARY_OUTPUT_PATH ${ PROJECT_SOURCE_DIR } /data/glest_game )
ADD_LIBRARY ( ${ TARGET_NAME } STATIC ${ MG_SOURCE_FILES } ${ MG_INCLUDE_FILES } )
MESSAGE ( STATUS "Building shared game library as a SHARED library and saving to [${LIBRARY_OUTPUT_PATH}]" )
ENDIF ( )
2010-12-11 13:35:27 +00:00
2011-10-17 16:59:22 +00:00
MESSAGE ( STATUS "EXTERNAL_LIBS = [${EXTERNAL_LIBS}]" )
2011-04-05 12:57:52 +00:00
2015-09-27 19:46:35 +02:00
OPTION ( MINIUPNP_DEBUG_BUILD "Build MegaGlest with UPNP DEBUG enabled" OFF )
MARK_AS_ADVANCED ( MINIUPNP_DEBUG_BUILD )
IF ( MINIUPNP_DEBUG_BUILD )
2011-10-21 03:24:04 +00:00
MESSAGE ( STATUS "Will try to build MegaGlest shared library with DEBUG info for UPNP" )
ADD_DEFINITIONS ( "-DDEBUG" )
ENDIF ( )
2011-10-17 16:59:22 +00:00
IF ( WIN32 )
2015-09-18 19:17:52 +02:00
TARGET_LINK_LIBRARIES ( ${ TARGET_NAME } stdc++ gcc odbc32 wsock32 winspool winmm shell32 comctl32 ctl3d32 advapi32 wsock32 opengl32 glu32 ole32 oleaut32 uuid mingw32 ddraw dsound dxguid ws2_32 iphlpapi wsock32 libogg libvorbis libvorbisfile zlib jpeg libpng xerces-c2_8_0 OpenAL32 libcurl winmm gdi32 opengl32 glu32 ${ SDL_VERSION_NAME } ${ SDL_VERSION_NAME } main lua5.1 stdc++ moldname mingwex msvcrt user32 kernel32 )
2015-09-27 19:46:35 +02:00
ENDIF ( )
2011-04-05 12:57:52 +00:00
2017-02-05 16:48:50 -08:00
IF ( WANT_USE_STREFLOP AND NOT STREFLOP_FOUND )
2015-09-27 19:46:35 +02:00
TARGET_LINK_LIBRARIES ( ${ TARGET_NAME } streflop )
2011-10-17 16:59:22 +00:00
ENDIF ( )
2015-09-27 19:46:35 +02:00
TARGET_LINK_LIBRARIES ( ${ TARGET_NAME } ${ EXTERNAL_LIBS } )
2011-10-21 03:24:04 +00:00
2015-09-27 19:46:35 +02:00
#IF(MINIUPNP_DEBUG_BUILD)
2011-10-21 03:24:04 +00:00
# REMOVE_DEFINITIONS("-DDEBUG")
#ENDIF()
2011-04-05 12:57:52 +00:00
ENDIF ( )