aboutsummaryrefslogtreecommitdiff
path: root/textures/base/pack/server_flags_pvp.png
blob: 977dfdc0c35e4c1441d685dae1f6d4dc238f6887 (plain)
ofshex dumpascii
0000 89 50 4e 47 0d 0a 1a 0a 00 00 00 0d 49 48 44 52 00 00 00 10 00 00 00 10 08 03 00 00 00 28 2d 0f .PNG........IHDR.............(-.
0020 53 00 00 02 46 50 4c 54 45 00 00 00 ff ff ff 97 9e ab 94 99 a1 2a 31 3b 99 a0 ae a4 ab b6 90 95 S...FPLTE............*1;........
0040 9c bf c3 ca a4 ab b7 b1 b9 c5 00 00 00 13 15 1b ff ff ff 00 00 00 a9 b0 bd b2 b5 bc aa ac b0 ba ................................
0060 bf c7 ac b3 be cf d5 e0 3e 43 4b a7 ad b8 b9 be c6 b9 bb c0 9b 9c 9f d3 d6 da b7 ba c2 a0 a6 af ........>CK.....................
0080 a7 ac b4 a2 a8 b1 b3 b8 bd d8 db df 9d 9e a0 93 94 95 cf d2 d5 b0 b4 ba 8f 94 9a 9a 9f a7 ac af ................................
00a0 b6 d3 d5 d8 80 81 83 6c 6d 6e ca cb cd aa ad b2 c6 cb d1 75 76 7d 97 9b a2 c1 c6 cc cf d1 d5 ca .......lmn.........uv}..........
00c0 cb ce 42 44 42 87 88 89 10 12 0f c3 c4 c7 a8 ab ae bb bf c5 aa ae b3 c1 c2 c5 00 00 00 ff ff ff ..BDB...........................
00e0 4d 4d 4d 91 92 93 ff ff ff 00 00 00 be bf c1 bb bc be a9 ac af ac ae b2 b0 b1 b4 bc bc be 00 00 MMM.............................
0100 00 68 68 67 00 00 00 b0 b1 b1 a9 ab ad 2b 2b 2e d9 d9 d9 ae ae af c2 c1 c4 55 4e 57 b1 b2 b6 ab .hhg.........++..........UNW....
0120 ac b0 51 48 52 c3 c1 c4 a4 a4 a3 b4 b4 b4 4c 4c 4a 71 6d 72 a7 a6 a1 bd bd b7 91 92 92 99 99 99 ..QHR.........LLJqmr............
0140 ba ba b5 ad ad a8 62 5b 62 6b 6b 6c f6 f6 fa 52 18 47 9d 96 9e 9e 9d 9d 00 00 00 a4 a4 a3 59 19 ......b[bkkl...R.G............Y.
0160 47 60 2e 62 ab ab b1 86 86 85 9d 90 a4 41 12 3e 42 1a 3f c8 c8 c8 a9 a8 aa a7 a6 a9 d1 d1 cd 4a G`.b.........A.>B.?............J
0180 24 45 45 13 3f 9f 9f ab 85 85 83 ae ae ad 9d 93 9d 5f 1b 44 56 16 3e 4f 16 45 27 1a 26 93 93 94 $EE.?............_.DV.>O.E'.&...
01a0 95 95 96 3b 31 3c 4f 17 46 54 16 3e 60 1c 46 9a 8d 9a ab ab a7 50 50 51 74 56 74 20 20 41 6c 46 ...;1<O.FT.>`.F......PPQtVt..AlF
01c0 6b 74 50 71 7b 78 7c 54 54 55 95 93 95 b0 b0 af bd bd b7 9d 9d 9f 81 81 87 a1 a1 a2 9f 9f a1 81 ktPq{x|TTU......................
01e0 81 84 cd cd c6 3c 2b 45 bb bb b5 b4 b4 b3 94 92 94 70 70 6a a9 a9 aa d9 dd e2 95 95 96 e1 e4 eb .....<+E.........ppj............
0200 c7 cd d5 a1 a1 a2 9a 9b 9b ca d1 dc c5 c7 ca b8 b9 bb d4 d6 db c8 d1 de ae b0 b3 5a 1f 46 c9 cf ...........................Z.F..
0220 d8 ab ae b2 c6 c7 ca b6 b6 b3 9e 9c a1 dc e0 e6 98 92 9d 59 24 49 d7 da e0 a0 a0 a2 b3 b3 b0 cd ...................Y$I..........
0240 cf d3 95 97 98 ad ae af c5 cb d4 a3 a4 a7 5f 1d 44 64 1e 46 c6 cc d7 c8 ce d7 c7 cc d4 c5 ca d5 .............._.Dd.F............
0260 d3 d6 da a8 ab b0 62 1c 44 5b 1c 44 c6 cd da 0e a9 31 90 00 00 00 99 74 52 4e 53 00 05 2c c5 03 ......b.D[.D.....1.....tRNS..,..
0280 28 7d c6 d8 7c a5 04 01 02 03 a0 ca a6 ef 93 05 02 8e ef 9a 27 d3 f5 87 09 81 f8 da 29 1f cc fa (}..|...............'.......)...
02a0 77 6d fe db 1e 18 cb fe f9 54 45 fd fd dc 12 01 10 c9 fe fd f3 d5 0a 04 01 02 01 0c bb fc fa fc wm.......TE.....................
02c0 fc c3 08 02 22 f6 f9 24 02 53 b9 3a c8 cd 33 ba 5a 02 01 27 b6 ec b0 94 ec b3 2f 01 01 b8 fe df ...."..$.S.:..3.Z..'....../.....
02e0 0e c7 c8 06 01 29 0c 93 af e3 ab 86 e2 c0 a2 0d 22 b7 eb f9 fb af 17 14 16 1d ab fa f6 f1 b0 37 .....).........."..............7
0300 cd 02 0c d3 43 07 51 9e 95 17 01 01 01 01 04 09 ac 86 5e 07 70 ca 25 4a 00 00 00 e8 49 44 41 54 ....C.Q...........^.p.%J....IDAT
0320 18 19 05 80 31 48 42 01 00 44 ef a1 43 83 4b 24 42 83 0d 0d 12 cd b9 06 45 20 12 3a 5a 39 a9 10 ....1HB..D..C.K$B.......E..:Z9..
0340 86 0a 51 81 9a 06 65 94 e6 0f aa 06 15 43 08 27 13 69 52 a1 04 1d 6a b5 b9 c8 d5 a6 72 6c 0b 0d ..Q...e......C.'.iR...j.....rl..
0360 4c a6 bf 99 6f 49 92 64 c6 3c 66 ea d1 e2 e6 57 92 05 28 d8 7c 4c 5f c6 6b fe 91 f5 47 4c 6c 46 L...oI.d.<f....W..(.|L_.k...GLlF
0380 a2 10 63 96 93 4c 35 30 b4 0f 27 73 f9 e4 cd 1e 68 9e bb 70 29 32 90 23 61 1c 9d f3 8e b4 48 2e ..c..L50..'s....h..p)2.#a.....H.
03a0 05 70 75 00 6f 42 4b 7d 27 d1 22 ec 72 0b bc 22 2d 03 00 d0 71 3d 09 49 92 7b eb 01 7f ad 25 79 .pu.oBK}'.".r.."-...q=.I.{....%y
03c0 9a 48 5e 20 c4 97 bd 02 34 7c 6c d4 37 61 65 fc c2 2a 3d a8 06 08 de 2b b4 d6 a5 b2 8d 8b e7 f2 .H^.....4|l.7ae..*=....+........
03e0 0e 44 60 9d 36 00 1e 9a 40 1c 20 9b 06 4e 8f 01 38 73 f0 99 ce a6 24 e5 0e 2f 16 f8 c0 00 d8 bf .D`.6...@....N..8s....$../......
0400 06 00 e0 1f 3a b2 41 99 c6 a5 08 a2 00 00 00 00 49 45 4e 44 ae 42 60 82 ....:.A.........IEND.B`.
id='n234' href='#n234'>234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614
project(minetest)
cmake_minimum_required( VERSION 2.6 )

# Set some random things default to not being visible in the GUI
mark_as_advanced(EXECUTABLE_OUTPUT_PATH LIBRARY_OUTPUT_PATH)
mark_as_advanced(JTHREAD_INCLUDE_DIR JTHREAD_LIBRARY)
mark_as_advanced(SQLITE3_INCLUDE_DIR SQLITE3_LIBRARY)
mark_as_advanced(JSON_INCLUDE_DIR JSON_LIBRARY)

option(ENABLE_CURL "Enable cURL support for fetching media" 1)

if (NOT ENABLE_CURL)
	mark_as_advanced(CLEAR CURL_LIBRARY CURL_INCLUDE_DIR)
endif(NOT ENABLE_CURL)

if( ENABLE_CURL )
	find_package(CURL)
endif( ENABLE_CURL )
set(USE_CURL 0)
if (CURL_FOUND AND ENABLE_CURL)
	message(STATUS "cURL support enabled")
	set(USE_CURL 1)
endif(CURL_FOUND AND ENABLE_CURL)

# user-visible option to enable/disable gettext usage
OPTION(ENABLE_GETTEXT "Use GetText for internationalization" 0)

# this is only set to 1 if gettext is enabled _and_ available
set(USE_GETTEXT 0)

if(ENABLE_GETTEXT)
	find_package(GettextLib)
else()
	MARK_AS_ADVANCED(GETTEXT_ICONV_DLL GETTEXT_INCLUDE_DIR GETTEXT_LIBRARY GETTEXT_MSGFMT)
endif()

if(GETTEXT_FOUND AND ENABLE_GETTEXT)
	message(STATUS "gettext include path: ${GETTEXT_INCLUDE_DIR}")
	message(STATUS "gettext msgfmt path: ${GETTEXT_MSGFMT}")
	if(WIN32)
		message(STATUS "gettext library: ${GETTEXT_LIBRARY}")
		message(STATUS "gettext dll: ${GETTEXT_DLL}")
		message(STATUS "gettext iconv dll: ${GETTEXT_ICONV_DLL}")
	endif()
	set(USE_GETTEXT 1)
	message(STATUS "GetText enabled; locales found: ${GETTEXT_AVAILABLE_LOCALES}")
elseif(GETTEXT_FOUND AND NOT ENABLE_GETTEXT)
	MESSAGE(STATUS "GetText found but disabled;")
else(GETTEXT_FOUND AND ENABLE_GETTEXT)
	message(STATUS "GetText disabled")
endif(GETTEXT_FOUND AND ENABLE_GETTEXT)

# user visible option to enable/disable sound
OPTION(ENABLE_SOUND "Enable sound" ON)

# this is only set to 1 if sound is enabled _and_ available
set(USE_SOUND 0)
set(SOUND_PROBLEM 0)

if(ENABLE_SOUND AND BUILD_CLIENT)
	# Sound libraries
	find_package(OpenAL)
	find_package(Vorbis)
	if(NOT OPENAL_FOUND)
		message(STATUS "Sound enabled, but OpenAL not found!")
		set(SOUND_PROBLEM 1)
		MARK_AS_ADVANCED(CLEAR OPENAL_LIBRARY OPENAL_INCLUDE_DIR)
	endif()
	if(NOT VORBIS_FOUND)
		message(STATUS "Sound enabled, but Vorbis libraries not found!")
		set(SOUND_PROBLEM 1)
		MARK_AS_ADVANCED(CLEAR OGG_INCLUDE_DIR VORBIS_INCLUDE_DIR OGG_LIBRARY VORBIS_LIBRARY VORBISFILE_LIBRARY)
	endif()
	if(OPENAL_FOUND AND VORBIS_FOUND)
		set(USE_SOUND 1)
		message(STATUS "Sound enabled")
	endif()
endif(ENABLE_SOUND AND BUILD_CLIENT)

if(SOUND_PROBLEM)
	message(FATAL_ERROR "Sound enabled, but cannot be used.\n"
		"To continue, either fill in the required paths or disable sound. (-DENABLE_SOUND=0)")
endif()
if(USE_SOUND)
	set(sound_SRCS sound_openal.cpp)
	set(SOUND_INCLUDE_DIRS
		${OPENAL_INCLUDE_DIR}
		${VORBIS_INCLUDE_DIR}
		${OGG_INCLUDE_DIR}
		)
	set(SOUND_LIBRARIES
		${OPENAL_LIBRARY}
		${VORBIS_LIBRARIES}
		)
endif()

option(ENABLE_FREETYPE "Enable freetype2 (truetype fonts and basic unicode support)" OFF)
set(USE_FREETYPE 0)
if(ENABLE_FREETYPE)
	set(USE_FREETYPE 1)
endif(ENABLE_FREETYPE)

if(NOT MSVC)
	set(USE_GPROF 0 CACHE BOOL "Use -pg flag for g++")
endif()

# Use cmake_config.h
add_definitions ( -DUSE_CMAKE_CONFIG_H )

if(WIN32)
	# Windows
	if(MSVC) # MSVC Specifics
		# Surpress some useless warnings
		add_definitions ( /D "_CRT_SECURE_NO_DEPRECATE" /W1 )
	else() # Probably MinGW = GCC
		set(PLATFORM_LIBS ws2_32.lib)
	endif()
	# Zlib stuff
	set(ZLIB_INCLUDE_DIR "${PROJECT_SOURCE_DIR}/../../zlib/zlib-1.2.5"
			CACHE PATH "Zlib include directory")
	set(ZLIB_LIBRARIES "${PROJECT_SOURCE_DIR}/../../zlib125dll/dll32/zlibwapi.lib"
			CACHE FILEPATH "Path to zlibwapi.lib")
	set(ZLIB_DLL "${PROJECT_SOURCE_DIR}/../../zlib125dll/dll32/zlibwapi.dll"
			CACHE FILEPATH "Path to zlibwapi.dll (for installation)")
	set(IRRLICHT_SOURCE_DIR "${PROJECT_SOURCE_DIR}/../../irrlicht-1.7.2"
			CACHE PATH "irrlicht dir")
	if(USE_FREETYPE)
		set(FREETYPE_INCLUDE_DIR_ft2build "${PROJECT_SOURCE_DIR}/../../freetype2/include/"
				CACHE PATH "freetype include dir")
		set(FREETYPE_INCLUDE_DIR_freetype2 "${PROJECT_SOURCE_DIR}/../../freetype2/include/freetype"
				CACHE PATH "freetype include dir")
		set(FREETYPE_LIBRARY "${PROJECT_SOURCE_DIR}/../../freetype2/objs/win32/vc2005/freetype247.lib"
				CACHE FILEPATH "Path to freetype247.lib")
	endif(USE_FREETYPE)
	set(MINGWM10_DLL ""
			CACHE FILEPATH "Path to mingwm10.dll (for installation)")
	if(ENABLE_SOUND)
		set(OPENAL_DLL "" CACHE FILEPATH "Path to OpenAL32.dll for installation (optional)")
		set(OGG_DLL "" CACHE FILEPATH "Path to libogg.dll for installation (optional)")
		set(VORBIS_DLL "" CACHE FILEPATH "Path to libvorbis.dll for installation (optional)")
		set(VORBISFILE_DLL "" CACHE FILEPATH "Path to libvorbisfile.dll for installation (optional)")
	endif()
else()
	# Unix probably
	if(BUILD_CLIENT)
		find_package(X11 REQUIRED)
		find_package(OpenGL REQUIRED)
		find_package(JPEG REQUIRED)
		find_package(BZip2 REQUIRED)
		find_package(PNG REQUIRED)
		if(APPLE)
			FIND_LIBRARY(CARBON_LIB Carbon)
			FIND_LIBRARY(COCOA_LIB Cocoa)
			FIND_LIBRARY(IOKIT_LIB IOKit)
			mark_as_advanced(
				CARBON_LIB
				COCOA_LIB
				IOKIT_LIB
			)
			SET(CLIENT_PLATFORM_LIBS ${CLIENT_PLATFORM_LIBS} ${CARBON_LIB} ${COCOA_LIB} ${IOKIT_LIB})
		endif(APPLE)
	endif(BUILD_CLIENT)
	find_package(ZLIB REQUIRED)
	set(PLATFORM_LIBS -lpthread -lrt ${CMAKE_DL_LIBS})
	#set(CLIENT_PLATFORM_LIBS -lXxf86vm)
	# This way Xxf86vm is found on OpenBSD too
	find_library(XXF86VM_LIBRARY Xxf86vm)
	mark_as_advanced(XXF86VM_LIBRARY)
	set(CLIENT_PLATFORM_LIBS ${CLIENT_PLATFORM_LIBS} ${XXF86VM_LIBRARY})
endif()

find_package(Jthread REQUIRED)
find_package(Sqlite3 REQUIRED)
find_package(Json REQUIRED)
find_package(OpenGLES2)

if(USE_FREETYPE)
	find_package(Freetype REQUIRED)
	set(CGUITTFONT_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/cguittfont")
	set(CGUITTFONT_LIBRARY cguittfont)
endif(USE_FREETYPE)


find_library(LUA_LIBRARY luajit
		NAMES luajit-5.1)
find_path(LUA_INCLUDE_DIR luajit.h
	NAMES luajit.h
	PATH_SUFFIXES luajit-2.0)
message (STATUS "LuaJIT library: ${LUA_LIBRARY}")
message (STATUS "LuaJIT headers: ${LUA_INCLUDE_DIR}")

if(LUA_LIBRARY AND LUA_INCLUDE_DIR) 
	message (STATUS "LuaJIT found.")
else(LUA_LIBRARY AND LUA_INCLUDE_DIR)
	message (STATUS "LuaJIT not found, using bundled Lua.")
	set(LUA_INCLUDE_DIR "${PROJECT_SOURCE_DIR}/lua/src")
	set(LUA_LIBRARY "lua")
	add_subdirectory(lua)
endif(LUA_LIBRARY AND LUA_INCLUDE_DIR)

mark_as_advanced(LUA_LIBRARY)
mark_as_advanced(LUA_INCLUDE_DIR)

configure_file(
	"${PROJECT_SOURCE_DIR}/cmake_config.h.in"
	"${PROJECT_BINARY_DIR}/cmake_config.h"
)

add_subdirectory(script)
add_subdirectory(util)

set(common_SRCS
	rollback_interface.cpp
	rollback.cpp
	genericobject.cpp
	voxelalgorithms.cpp
	sound.cpp
	quicktune.cpp
	subgame.cpp
	inventorymanager.cpp
	mods.cpp
	content_abm.cpp
	craftdef.cpp
	nameidmapping.cpp
	itemdef.cpp
	nodedef.cpp
	object_properties.cpp
	log.cpp
	content_sao.cpp
	emerge.cpp
	mapgen.cpp
	mapgen_v6.cpp
	mapgen_v7.cpp
	mapgen_indev.cpp
	mapgen_singlenode.cpp
	mapgen_math.cpp
	treegen.cpp
	dungeongen.cpp
	cavegen.cpp
	content_nodemeta.cpp
	content_mapnode.cpp
	collision.cpp
	nodemetadata.cpp
	nodetimer.cpp
	serverobject.cpp
	noise.cpp
	porting.cpp
	tool.cpp
	defaultsettings.cpp
	mapnode.cpp
	voxel.cpp
	inventory.cpp
	debug.cpp
	serialization.cpp
	light.cpp
	filesys.cpp
	connection.cpp
	environment.cpp
	server.cpp
	socket.cpp
	mapblock.cpp
	mapsector.cpp
	map.cpp
	player.cpp
	test.cpp
	sha1.cpp
	base64.cpp
	ban.cpp
	biome.cpp
	clientserver.cpp
	staticobject.cpp
	serverlist.cpp
	pathfinder.cpp
	convert_json.cpp
	${SCRIPT_SRCS}
	${UTIL_SRCS}
)

# This gives us the icon
if(WIN32)
	set(WINRESOURCE_FILE ${CMAKE_CURRENT_SOURCE_DIR}/../misc/winresource.rc)
	if(MINGW)
		if(NOT CMAKE_RC_COMPILER)
			set(CMAKE_RC_COMPILER "windres.exe")
		endif()
		ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/winresource_rc.o
			COMMAND ${CMAKE_RC_COMPILER} -I${CMAKE_CURRENT_SOURCE_DIR}
			-i${WINRESOURCE_FILE}
			-o ${CMAKE_CURRENT_BINARY_DIR}/winresource_rc.o
			WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
		SET(common_SRCS ${common_SRCS} ${CMAKE_CURRENT_BINARY_DIR}/winresource_rc.o)
	else(MINGW) # Probably MSVC
		set(common_SRCS ${common_SRCS} ${WINRESOURCE_FILE})
	endif(MINGW)
endif()

# Client sources
set(minetest_SRCS
	${common_SRCS}
	${sound_SRCS}
	localplayer.cpp
	sky.cpp
	clientmap.cpp
	content_cso.cpp
	content_mapblock.cpp
	content_cao.cpp
	mesh.cpp
	mapblock_mesh.cpp
	farmesh.cpp
	keycode.cpp
	camera.cpp
	clouds.cpp
	particles.cpp
	clientobject.cpp
	chat.cpp
	hud.cpp
	guiKeyChangeMenu.cpp
	guiMessageMenu.cpp
	guiTextInputMenu.cpp
	guiFormSpecMenu.cpp
	guiPauseMenu.cpp
	guiPasswordChange.cpp
	guiVolumeChange.cpp
	guiDeathScreen.cpp
	guiChatConsole.cpp
	client.cpp
	filecache.cpp
	tile.cpp
	shader.cpp
	game.cpp
	main.cpp
	guiEngine.cpp
	guiLuaApi.cpp
	guiFileSelectMenu.cpp
	convert_json.cpp
)

if(USE_FREETYPE)
	set(minetest_SRCS
		${minetest_SRCS}
		intlGUIEditBox.cpp
	)
endif(USE_FREETYPE)

# Server sources
set(minetestserver_SRCS
	${common_SRCS}
	main.cpp
)

include_directories(
	${PROJECT_BINARY_DIR}
	${PROJECT_SOURCE_DIR}
	${IRRLICHT_INCLUDE_DIR}
	${ZLIB_INCLUDE_DIR}
	${CMAKE_BUILD_TYPE}
	${PNG_INCLUDE_DIR}
	${GETTEXT_INCLUDE_DIR}
	${SOUND_INCLUDE_DIRS}
	${JTHREAD_INCLUDE_DIR}
	${SQLITE3_INCLUDE_DIR}
	${LUA_INCLUDE_DIR}
	${JSON_INCLUDE_DIR}
	${PROJECT_SOURCE_DIR}/script
)

if(USE_FREETYPE)
	include_directories(
		${FREETYPE_INCLUDE_DIRS}
		${CGUITTFONT_INCLUDE_DIR}
	)
endif(USE_FREETYPE)

if(USE_CURL)
	include_directories(
		${CURL_INCLUDE_DIR}
	)
endif(USE_CURL)

set(EXECUTABLE_OUTPUT_PATH "${CMAKE_SOURCE_DIR}/bin")

if(BUILD_CLIENT)
	add_executable(${PROJECT_NAME} ${minetest_SRCS})
	target_link_libraries(
		${PROJECT_NAME}
		${ZLIB_LIBRARIES}
		${IRRLICHT_LIBRARY}
		${OPENGL_LIBRARIES}
		${JPEG_LIBRARIES}
		${BZIP2_LIBRARIES}
		${PNG_LIBRARIES}
		${X11_LIBRARIES}
		${GETTEXT_LIBRARY}
		${SOUND_LIBRARIES}
		${JTHREAD_LIBRARY}
		${SQLITE3_LIBRARY}
		${LUA_LIBRARY}
		${JSON_LIBRARY}
		${OPENGLES2_LIBRARIES}
		${PLATFORM_LIBS}
		${CLIENT_PLATFORM_LIBS}
	)
	if(USE_CURL)
		target_link_libraries(
			${PROJECT_NAME}
			${CURL_LIBRARY}
		)
	endif(USE_CURL)
	if(USE_FREETYPE)
		target_link_libraries(
			${PROJECT_NAME}
			${FREETYPE_LIBRARY}
			${CGUITTFONT_LIBRARY}
		)
	endif(USE_FREETYPE)
endif(BUILD_CLIENT)

if(BUILD_SERVER)
	add_executable(${PROJECT_NAME}server ${minetestserver_SRCS})
	target_link_libraries(
		${PROJECT_NAME}server
		${ZLIB_LIBRARIES}
		${JTHREAD_LIBRARY}
		${SQLITE3_LIBRARY}
		${JSON_LIBRARY}
		${GETTEXT_LIBRARY}
		${LUA_LIBRARY}
		${PLATFORM_LIBS}
	)
	if(USE_CURL)
		target_link_libraries(
			${PROJECT_NAME}server
			${CURL_LIBRARY}
		)
	endif(USE_CURL)
endif(BUILD_SERVER)


#
# Set some optimizations and tweaks
#

include(CheckCXXCompilerFlag)

if(MSVC)
	# Visual Studio

	# EHa enables SEH exceptions (used for catching segfaults)
	set(CMAKE_CXX_FLAGS_RELEASE "/EHa /O2 /Ob2 /Oi /Ot /Oy /GL /FD /MT /GS- /arch:SSE /fp:fast /D NDEBUG /D _HAS_ITERATOR_DEBUGGING=0 /TP")
	#set(CMAKE_EXE_LINKER_FLAGS_RELEASE "/LTCG /NODEFAULTLIB:\"libcmtd.lib\" /NODEFAULTLIB:\"libcmt.lib\"")