Linux: Add CMake support

CMake produces a config.h which defines the macros as empty strings instead
of 1, so some #ifs have to be adapted.
stable-5.2
Günther Brammer 2009-05-29 23:05:50 +02:00
parent cc34bdc07c
commit fc7d8425ba
6 changed files with 150 additions and 61 deletions

View File

@ -1,7 +1,11 @@
cmake_minimum_required (VERSION 2.6)
project (clonk CXX C)
add_executable(clonk
if(WIN32)
SET(additional_clonk_sources engine/src/C4FileClasses.cpp engine/res/engine.rc engine/res/resource.h)
endif()
add_executable(clonk WIN32 MACOSX_BUNDLE
${additional_clonk_sources}
engine/src/C4AList.cpp
engine/src/C4Action.cpp
engine/src/C4Application.cpp
@ -318,10 +322,6 @@ add_executable(clonk
engine/res/Play.h
engine/res/Rect.h
engine/res/Static.h
engine/src/C4FileClasses.cpp
engine/res/engine.rc
engine/res/resource.h
)
add_executable(c4group
@ -348,7 +348,33 @@ add_executable(c4group
standard/zlib/zutil.h
)
if(WIN32)
SET(additional_system_sources
standard/src/StdWindow.cpp
standard/src/StdJoystick.cpp
standard/inc/StdJoystick.h
)
elseif(USE_SDL)
SET(additional_system_sources
standard/src/StdSDLApp.cpp
standard/src/StdSDLWindow.cpp
)
elseif(USE_X11)
SET(additional_system_sources
standard/src/StdXApp.cpp
standard/src/StdXWindow.cpp
standard/src/StdXPrivate.h
)
endif()
if(USE_GTK)
SET(additional_system_sources
${additional_system_sources}
standard/src/StdGtkWindow.cpp
standard/inc/StdGtkWindow.h
)
endif()
add_library(standard STATIC
${additional_system_sources}
standard/src/Bitmap256.cpp
standard/src/CStdFile.cpp
standard/src/Fixed.cpp
@ -412,10 +438,6 @@ add_library(standard STATIC
standard/inc/StdWindow.h
standard/zlib/gzio.c
standard/zlib/zutil.h
standard/src/StdWindow.cpp
standard/src/StdJoystick.cpp
standard/inc/StdJoystick.h
)
include_directories(
@ -424,6 +446,7 @@ include_directories(
${CMAKE_CURRENT_SOURCE_DIR}/standard/inc
${CMAKE_CURRENT_SOURCE_DIR}/engine/inc
${CMAKE_CURRENT_SOURCE_DIR}/engine/sec
${CMAKE_CURRENT_SOURCE_DIR}/engine
)
target_link_libraries(clonk standard)
@ -439,14 +462,44 @@ CHECK_INCLUDE_FILE_CXX(stdint.h HAVE_STDINT_H)
CHECK_INCLUDE_FILE_CXX(sys/stat.h HAVE_SYS_STAT_H)
CHECK_INCLUDE_FILE_CXX(sys/types.h HAVE_SYS_TYPES_H)
CHECK_INCLUDE_FILE_CXX(unistd.h HAVE_UNISTD_H)
CHECK_INCLUDE_FILE_CXX(execinfo.h HAVE_EXECINFO_H)
CHECK_INCLUDE_FILE_CXX(langinfo.h HAVE_LANGINFO_H)
CHECK_INCLUDE_FILE_CXX(poll.h HAVE_POLL_H)
CHECK_INCLUDE_FILE_CXX(sys/inotify.h HAVE_SYS_INOTIFY_H)
CHECK_INCLUDE_FILE_CXX(sys/socket.h HAVE_SYS_SOCKET_H)
CHECK_INCLUDE_FILE_CXX(X11/extensions/xf86vmode.h HAVE_X11_EXTENSIONS_XF86VMODE_H)
CHECK_INCLUDE_FILE_CXX(X11/extensions/Xrandr.h HAVE_X11_EXTENSIONS_XRANDR_H)
CHECK_INCLUDE_FILE_CXX(X11/keysym.h HAVE_X11_KEYSYM_H)
CHECK_INCLUDE_FILE_CXX(X11/xpm.h HAVE_X11_XPM_H)
CHECK_INCLUDE_FILE_CXX(iconv.h HAVE_ICONV)
if(HAVE_ICONV)
SET(ICONV_CONST ON)
endif()
include(CheckFunctionExists)
CHECK_FUNCTION_EXISTS(vasprintf HAVE_VASPRINTF)
# User selectable options
option(USE_GL "Enable OpenGL support" ON)
if(APPLE)
SET(INITIAL_USE_SDL_VALUE ON)
else()
SET(INITIAL_USE_SDL_VALUE OFF)
endif()
option(USE_SDL "Use SDL to create windows etc." ${INITIAL_USE_SDL_VALUE})
if(WIN32)
option(USE_DIRECTX "Enable DirectX support" ON)
else()
SET(USE_DIRECTX OFF)
endif()
if(UNIX)
option(USE_X11 "Use X11 to create windows etc." ON)
option(USE_GTK "Use GTK for the developer mode" ON)
else()
SET(USE_X11 OFF)
SET(USE_GTK OFF)
endif()
if(NOT USE_GL AND NOT USE_DIRECTX)
message(STATUS "No graphics display enabled; building dedicated server")
SET(USE_CONSOLE ON CACHE INTERNAL "Build dedicated server")
@ -457,11 +510,13 @@ include(FindJPEG)
include(FindPNG)
include(FindZLIB)
include(FindThreads)
SET(HAVE_PTHREAD ${CMAKE_USE_PTHREADS_INIT})
# isilkor 09-05-29: FindFreetype only checks for no-ver and 219
find_library(FREETYPE_LIBRARY NAMES freetype239)
include(FindFreetype)
include_directories(${FREETYPE_INCLUDE_DIRS})
SET(HAVE_FREETYPE ${FREETYPE_FOUND} CACHE INTERNAL "Rename of FREETYPE_FOUND for config.h")
# FINDLIB works the same as find_library, but also marks the resulting var as
@ -470,9 +525,6 @@ macro(FINDLIB lib)
find_library(${ARGV})
mark_as_advanced(${lib})
endmacro(FINDLIB)
FINDLIB(VFW vfw32)
FINDLIB(WS2 ws2_32)
FINDLIB(WINMM winmm)
# isilkor 09-05-29: Don't use FindOpenSSL, because that wants to link to ssleay
FINDLIB(OPENSSL NAMES crypto libeay32)
@ -485,6 +537,38 @@ if(USE_DIRECTX)
FINDLIB(DIRECT3D d3d9)
FINDLIB(DIRECT3DX d3dx9)
endif()
if(USE_GTK)
include(FindPkgConfig)
if (PKG_CONFIG_FOUND)
pkg_check_modules(GTK glib-2.0>=2.4 gtk+-2.0>=2.4)
endif()
if(GTK_FOUND)
include_directories(${GTK_INCLUDE_DIRS})
link_directories(${GTK_LIBRARY_DIRS})
SET(WITH_DEVELOPER_MODE ${GTK_FOUND})
SET(WITH_GLIB ${GTK_FOUND})
endif()
endif()
if(USE_X11)
FINDLIB(X11 X11)
FINDLIB(XPM Xpm)
FINDLIB(XXF86VM Xxf86vm)
FINDLIB(XRANDR Xrandr)
endif()
if (WIN32)
FINDLIB(VFW vfw32)
FINDLIB(WS2 ws2_32)
FINDLIB(WINMM winmm)
endif()
if (UNIX)
include(FindSDL)
SET(HAVE_SDL ${SDL_FOUND})
if(SDL_FOUND)
include_directories(${SDL_INCLUDE_DIR})
FINDLIB(SDLMIXER SDL_mixer)
SET(HAVE_LIBSDL_MIXER ${SDLMIXER})
endif()
endif()
target_link_libraries(clonk
${FREETYPE_LIBRARIES}
@ -498,6 +582,13 @@ target_link_libraries(clonk
${PNG_LIBRARIES}
${JPEG_LIBRARIES}
${OPENSSL}
${GTK_LIBRARIES}
${X11}
${XPM}
${XXF86VM}
${XRANDR}
${SDL_LIBRARY}
${SDLMIXER}
)
target_link_libraries(c4group
${ZLIB_LIBRARIES}

View File

@ -19,6 +19,8 @@
#ifndef INC_C4KeyboardInput
#define INC_C4KeyboardInput
#include <cctype>
// key context classifications
enum C4KeyScope
{

View File

@ -49,11 +49,7 @@ namespace {
#endif
#endif // _WIN32
#ifndef WITH_DEVELOPER_MODE
#define WITH_DEVELOPER_MODE 0
#endif
#if WITH_DEVELOPER_MODE
#ifdef WITH_DEVELOPER_MODE
# include <gdk/gdkcursor.h>
# include <gdk/gdkx.h>
# include <gtk/gtkstock.h>
@ -126,7 +122,7 @@ C4Console::C4Console()
hbmPlay2=NULL;
hbmHalt=NULL;
hbmHalt2=NULL;
#elif WITH_DEVELOPER_MODE
#elif defined(WITH_DEVELOPER_MODE)
cursorDefault = NULL;
cursorWait = NULL;
itemNet = NULL;
@ -153,7 +149,7 @@ C4Console::~C4Console()
if (hbmPlay2) DeleteObject(hbmPlay2);
if (hbmHalt) DeleteObject(hbmHalt);
if (hbmHalt2) DeleteObject(hbmHalt2);
#elif WITH_DEVELOPER_MODE
#elif defined(WITH_DEVELOPER_MODE)
if(cursorDefault) gdk_cursor_unref(cursorDefault);
if(cursorWait) gdk_cursor_unref(cursorWait);
#endif // WITH_DEVELOPER_MODE / _WIN32
@ -295,7 +291,7 @@ BOOL CALLBACK ConsoleDlgProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam)
return FALSE;
}
#elif defined(USE_X11) && !WITH_DEVELOPER_MODE
#elif defined(USE_X11) && !defined(WITH_DEVELOPER_MODE)
void C4Console::HandleMessage (XEvent & e)
{
// Parent handling
@ -368,7 +364,7 @@ CStdWindow * C4Console::Init(CStdApp * pApp)
ShowCursor(TRUE);
// Success
return this;
#elif WITH_DEVELOPER_MODE
#elif defined(WITH_DEVELOPER_MODE)
cursorWait = gdk_cursor_new(GDK_WATCH);
cursorDefault = gdk_cursor_new(GDK_ARROW);
@ -383,7 +379,7 @@ CStdWindow * C4Console::Init(CStdApp * pApp)
#endif // WITH_DEVELOPER_MODE / _WIN32
}
#if WITH_DEVELOPER_MODE
#ifdef WITH_DEVELOPER_MODE
GtkWidget* C4Console::InitGUI()
{
// ------------ Play/Pause and Mode ---------------------
@ -628,7 +624,7 @@ bool C4Console::Out(const char *szText)
lines = SendDlgItemMessage(hWindow,IDC_EDITOUTPUT,EM_GETLINECOUNT,(WPARAM)0,(LPARAM)0);
SendDlgItemMessage(hWindow,IDC_EDITOUTPUT,EM_LINESCROLL,(WPARAM)0,(LPARAM)lines);
UpdateWindow(hWindow);
#elif WITH_DEVELOPER_MODE
#elif defined(WITH_DEVELOPER_MODE)
// Append text to log
if(!window) return true;
@ -654,7 +650,7 @@ bool C4Console::ClearLog()
SetDlgItemText(hWindow,IDC_EDITOUTPUT,"");
SendDlgItemMessage(hWindow,IDC_EDITOUTPUT,EM_LINESCROLL,(WPARAM)0,0);
UpdateWindow(hWindow);
#elif WITH_DEVELOPER_MODE
#elif defined(WITH_DEVELOPER_MODE)
gtk_text_buffer_set_text(gtk_text_view_get_buffer(GTK_TEXT_VIEW(txtLog)), "", 0);
#endif // WITH_DEVELOPER_MODE / _WIN32
return true;
@ -687,7 +683,7 @@ bool C4Console::UpdateStatusBars()
#ifdef _WIN32
SetDlgItemText(hWindow,IDC_STATICFRAME,str.getData());
UpdateWindow(GetDlgItem(hWindow,IDC_STATICFRAME));
#elif WITH_DEVELOPER_MODE
#elif defined(WITH_DEVELOPER_MODE)
gtk_label_set_label(GTK_LABEL(lblFrame), str.getData());
#endif // WITH_DEVELOPER_MODE / _WIN32
}
@ -700,7 +696,7 @@ bool C4Console::UpdateStatusBars()
#ifdef _WIN32
SetDlgItemText(hWindow,IDC_STATICSCRIPT,str.getData());
UpdateWindow(GetDlgItem(hWindow,IDC_STATICSCRIPT));
#elif WITH_DEVELOPER_MODE
#elif defined(WITH_DEVELOPER_MODE)
gtk_label_set_label(GTK_LABEL(lblScript), str.getData());
#endif // WITH_DEVELOPER_MODE / _WIN32
}
@ -714,7 +710,7 @@ bool C4Console::UpdateStatusBars()
#ifdef _WIN32
SetDlgItemText(hWindow,IDC_STATICTIME,str.getData());
UpdateWindow(GetDlgItem(hWindow,IDC_STATICTIME));
#elif WITH_DEVELOPER_MODE
#elif defined(WITH_DEVELOPER_MODE)
gtk_label_set_label(GTK_LABEL(lblTime), str.getData());
#endif // WITH_DEVELOPER_MODE
}
@ -729,7 +725,7 @@ bool C4Console::UpdateHaltCtrls(bool fHalt)
UpdateWindow(GetDlgItem(hWindow,IDC_BUTTONPLAY));
SendDlgItemMessage(hWindow,IDC_BUTTONHALT,BM_SETSTATE,fHalt,0);
UpdateWindow(GetDlgItem(hWindow,IDC_BUTTONHALT));
#elif WITH_DEVELOPER_MODE
#elif defined(WITH_DEVELOPER_MODE)
// Prevents recursion
g_signal_handler_block(btnPlay, handlerPlay);
g_signal_handler_block(btnHalt, handlerHalt);
@ -767,7 +763,7 @@ BOOL C4Console::SaveGame(BOOL fSaveGame)
BOOL fOkay=TRUE;
#ifdef _WIN32
SetCursor(LoadCursor(0,IDC_WAIT));
#elif WITH_DEVELOPER_MODE
#elif defined(WITH_DEVELOPER_MODE)
// Seems not to work. Don't know why...
gdk_window_set_cursor(window->window, cursorWait);
#endif
@ -789,7 +785,7 @@ BOOL C4Console::SaveGame(BOOL fSaveGame)
#ifdef _WIN32
SetCursor(LoadCursor(0,IDC_ARROW));
#elif WITH_DEVELOPER_MODE
#elif defined(WITH_DEVELOPER_MODE)
gdk_window_set_cursor(window->window, NULL);
#endif
@ -857,7 +853,7 @@ bool C4Console::Message(const char *szMessage, bool fQuery)
if (!Active) return FALSE;
#ifdef _WIN32
return (IDOK==MessageBox(hWindow,szMessage,C4ENGINECAPTION,fQuery ? (MB_OKCANCEL | MB_ICONEXCLAMATION) : MB_ICONEXCLAMATION));
#elif WITH_DEVELOPER_MODE
#elif defined(WITH_DEVELOPER_MODE)
GtkWidget* dialog = gtk_message_dialog_new(GTK_WINDOW(window), GTK_DIALOG_MODAL, GTK_MESSAGE_INFO, fQuery ? (GTK_BUTTONS_OK_CANCEL) : (GTK_BUTTONS_OK), "%s", szMessage);
int response = gtk_dialog_run(GTK_DIALOG(dialog));
gtk_widget_destroy(dialog);
@ -914,7 +910,7 @@ void C4Console::EnableControls(bool fEnable)
// Player & viewport menu
EnableMenuItem(GetMenu(hWindow),IDM_PLAYER_JOIN, MF_BYCOMMAND | ((fEnable && Editing) ? MF_ENABLED : MF_GRAYED));
EnableMenuItem(GetMenu(hWindow),IDM_VIEWPORT_NEW, MF_BYCOMMAND | (fEnable ? MF_ENABLED : MF_GRAYED));
#elif WITH_DEVELOPER_MODE
#elif defined(WITH_DEVELOPER_MODE)
// Halt controls
gtk_widget_set_sensitive(btnPlay, Game.Network.isLobbyActive() || fEnable);
gtk_widget_set_sensitive(btnHalt, Game.Network.isLobbyActive() || fEnable);
@ -1029,7 +1025,7 @@ BOOL C4Console::FileSelect(char *sFilename, int iSize, const char * szFilter, DW
// Reset working directory to exe path as Windows file dialog might have changed it
SetCurrentDirectory(Config.General.ExePath);
return fResult;
#elif WITH_DEVELOPER_MODE
#elif defined(WITH_DEVELOPER_MODE)
GtkWidget* dialog = gtk_file_chooser_dialog_new(fSave ? "Save file..." : "Load file...", GTK_WINDOW(window), fSave ? GTK_FILE_CHOOSER_ACTION_SAVE : GTK_FILE_CHOOSER_ACTION_OPEN, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, fSave ? GTK_STOCK_SAVE : GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT, NULL);
// TODO: Set dialog modal?
@ -1161,7 +1157,7 @@ BOOL C4Console::FileRecord()
// disable menuitem
#ifdef _WIN32
EnableMenuItem(GetMenu(hWindow),IDM_FILE_RECORD, MF_BYCOMMAND | MF_GRAYED);
#elif WITH_DEVELOPER_MODE
#elif defined(WITH_DEVELOPER_MODE)
gtk_widget_set_sensitive(fileRecord, false);
#endif
return TRUE;
@ -1184,7 +1180,7 @@ void C4Console::Clear()
{
C4ConsoleBase::Clear();
#if WITH_DEVELOPER_MODE
#ifdef WITH_DEVELOPER_MODE
// txtLog = NULL;
// txtScript = NULL;
// btnPlay = NULL;
@ -1219,7 +1215,7 @@ void C4Console::HelpAbout()
#ifdef _WIN32
StdStrBuf strMessage; strMessage.Format("%s %s\n\n%s", C4ENGINECAPTION, C4VERSION, strCopyright.getData());
MessageBox(NULL, strMessage.getData(), C4ENGINECAPTION, MB_ICONINFORMATION | MB_TASKMODAL);
#elif WITH_DEVELOPER_MODE
#elif defined(WITH_DEVELOPER_MODE)
gtk_show_about_dialog(GTK_WINDOW(window), "name", C4ENGINECAPTION, "version", C4VERSION, "copyright", strCopyright.getData(), NULL);
#endif // WITH_DEVELOPER_MODE / _WIN32
}
@ -1236,7 +1232,7 @@ bool C4Console::UpdateCursorBar(const char *szCursor)
// Cursor
SetDlgItemText(hWindow,IDC_STATICCURSOR,szCursor);
UpdateWindow(GetDlgItem(hWindow,IDC_STATICCURSOR));
#elif WITH_DEVELOPER_MODE
#elif defined(WITH_DEVELOPER_MODE)
gtk_label_set_label(GTK_LABEL(lblCursor), Languages.IconvUtf8(szCursor).getData());
#endif
return TRUE;
@ -1255,7 +1251,7 @@ bool C4Console::UpdateViewportMenu()
sText.Format(LoadResStr("IDS_CNS_NEWPLRVIEWPORT"),pPlr->GetName());
#ifdef _WIN32
AddMenuItem(hMenu,IDM_VIEWPORT_NEW1+pPlr->Number,sText.getData());
#elif WITH_DEVELOPER_MODE
#elif defined(WITH_DEVELOPER_MODE)
GtkWidget* menuItem = gtk_menu_item_new_with_label(Languages.IconvUtf8(sText.getData()).getData());
gtk_menu_shell_append(GTK_MENU_SHELL(menuViewport), menuItem);
g_signal_connect(G_OBJECT(menuItem), "activate", G_CALLBACK(OnViewNewPlr), GINT_TO_POINTER(pPlr->Number));
@ -1271,7 +1267,7 @@ void C4Console::ClearViewportMenu()
#ifdef _WIN32
HMENU hMenu = GetSubMenu(GetMenu(hWindow),MenuIndexViewport);
while (DeleteMenu(hMenu,1,MF_BYPOSITION));
#elif WITH_DEVELOPER_MODE
#elif defined(WITH_DEVELOPER_MODE)
GList* children = gtk_container_get_children(GTK_CONTAINER(menuViewport));
for(GList* item = children; item != NULL; item = item->next)
{
@ -1310,7 +1306,7 @@ bool C4Console::UpdateModeCtrls(int iMode)
UpdateWindow(GetDlgItem(hWindow,IDC_BUTTONMODEEDIT));
SendDlgItemMessage(hWindow,IDC_BUTTONMODEDRAW,BM_SETSTATE,(iMode==C4CNS_ModeDraw),0);
UpdateWindow(GetDlgItem(hWindow,IDC_BUTTONMODEDRAW));
#elif WITH_DEVELOPER_MODE
#elif defined(WITH_DEVELOPER_MODE)
// Prevents recursion
g_signal_handler_block(btnModePlay, handlerModePlay);
g_signal_handler_block(btnModeEdit, handlerModeEdit);
@ -1359,7 +1355,7 @@ void C4Console::UpdateInputCtrl()
HWND hCombo = GetDlgItem(hWindow,IDC_COMBOINPUT);
// Clear
SendMessage(hCombo,CB_RESETCONTENT,0,0);
#elif WITH_DEVELOPER_MODE
#elif defined(WITH_DEVELOPER_MODE)
GtkEntryCompletion* completion = gtk_entry_get_completion(GTK_ENTRY(txtScript));
if(!completion)
{
@ -1384,7 +1380,7 @@ void C4Console::UpdateInputCtrl()
#ifdef _WIN32
SendMessage(hCombo,CB_ADDSTRING,0,(LPARAM)pFn->Name);
#else
#if WITH_DEVELOPER_MODE
#ifdef WITH_DEVELOPER_MODE
gtk_list_store_append(store, &iter);
gtk_list_store_set(store, &iter, 0, pFn->Name, -1);
#endif
@ -1399,7 +1395,7 @@ void C4Console::UpdateInputCtrl()
{
#ifdef _WIN32
SendMessage(hCombo,CB_INSERTSTRING,0,(LPARAM)pRef->Name);
#elif WITH_DEVELOPER_MODE
#elif defined(WITH_DEVELOPER_MODE)
gtk_list_store_append(store, &iter);
gtk_list_store_set(store, &iter, 0, pRef->Name, -1);
#endif
@ -1422,7 +1418,7 @@ bool C4Console::UpdatePlayerMenu()
sText.Format(LoadResStr("IDS_CNS_PLRQUIT"),pPlr->GetName());
#ifdef _WIN32
AddMenuItem(hMenu,IDM_PLAYER_QUIT1+pPlr->Number,sText.getData(),(!Game.Network.isEnabled() || Game.Network.isHost()) && Editing);
#elif WITH_DEVELOPER_MODE
#elif defined(WITH_DEVELOPER_MODE)
// TODO: Implement AddMenuItem...
GtkWidget* menuItem = gtk_menu_item_new_with_label(Languages.IconvUtf8(sText.getData()).getData());
gtk_menu_shell_append(GTK_MENU_SHELL(menuPlayer), menuItem);
@ -1441,7 +1437,7 @@ void C4Console::ClearPlayerMenu()
#ifdef _WIN32
HMENU hMenu = GetSubMenu(GetMenu(hWindow),MenuIndexPlayer);
while (DeleteMenu(hMenu,1,MF_BYPOSITION));
#elif WITH_DEVELOPER_MODE
#elif defined(WITH_DEVELOPER_MODE)
GList* children = gtk_container_get_children(GTK_CONTAINER(menuPlayer));
for(GList* item = children; item != NULL; item = item->next)
{
@ -1548,7 +1544,7 @@ void C4Console::UpdateNetMenu()
// Insert menu
#ifdef _WIN32
if (!InsertMenu(GetMenu(hWindow),MenuIndexHelp,MF_BYPOSITION | MF_POPUP,(UINT)CreateMenu(),LoadResStr("IDS_MNU_NET"))) return;
#elif WITH_DEVELOPER_MODE
#elif defined(WITH_DEVELOPER_MODE)
itemNet = gtk_menu_item_new_with_label(LoadResStrUtf8I("IDS_MNU_NET"));
GtkWidget* menuNet = gtk_menu_new();
gtk_menu_item_set_submenu(GTK_MENU_ITEM(itemNet), menuNet);
@ -1568,7 +1564,7 @@ void C4Console::UpdateNetMenu()
str.Format(LoadResStr("IDS_MNU_NETHOST"),Game.Clients.getLocalName(),Game.Clients.getLocalID());
#ifdef _WIN32
AddMenuItem(hMenu,IDM_NET_CLIENT1+Game.Clients.getLocalID(),str.getData());
#elif WITH_DEVELOPER_MODE
#elif defined(WITH_DEVELOPER_MODE)
GtkWidget* item = gtk_menu_item_new_with_label(str.getData());
gtk_menu_shell_append(GTK_MENU_SHELL(menuNet), item);
g_signal_connect(G_OBJECT(item), "activate", G_CALLBACK(OnNetClient), GINT_TO_POINTER(Game.Clients.getLocalID()));
@ -1580,13 +1576,13 @@ void C4Console::UpdateNetMenu()
pClient->getName(), pClient->getID());
#ifdef _WIN32
AddMenuItem(hMenu,IDM_NET_CLIENT1+pClient->getID(), str.getData());
#elif WITH_DEVELOPER_MODE
#elif defined(WITH_DEVELOPER_MODE)
item = gtk_menu_item_new_with_label(str.getData());
gtk_menu_shell_append(GTK_MENU_SHELL(menuNet), item);
g_signal_connect(G_OBJECT(item), "activate", G_CALLBACK(OnNetClient), GINT_TO_POINTER(pClient->getID()));
#endif
}
#if WITH_DEVELOPER_MODE
#ifdef WITH_DEVELOPER_MODE
gtk_widget_show_all(itemNet);
#endif
return;
@ -1598,7 +1594,7 @@ void C4Console::ClearNetMenu()
if (MenuIndexNet<0) return;
#ifdef _WIN32
DeleteMenu(GetMenu(hWindow),MenuIndexNet,MF_BYPOSITION);
#elif WITH_DEVELOPER_MODE
#elif defined(WITH_DEVELOPER_MODE)
gtk_container_remove(GTK_CONTAINER(menuBar), itemNet);
itemNet = NULL;
#endif
@ -1686,7 +1682,7 @@ bool C4Console::TogglePause()
}
// GTK+ callbacks
#if WITH_DEVELOPER_MODE
#ifdef WITH_DEVELOPER_MODE
void C4Console::OnScriptEntry(GtkWidget* entry, gpointer data)
{
C4Console* console = static_cast<C4Console*>(data);

View File

@ -390,7 +390,7 @@ void C4PropertyDlg::UpdateInputCtrl(C4Object *pObj)
#ifdef _WIN32
// Restore old text
SetWindowText(hCombo,szLastText);
#elif WITH_DEVELOPER_MODE
#elif defined(WITH_DEVELOPER_MODE)
// Reassociate list store with completion
gtk_entry_completion_set_model(completion, GTK_TREE_MODEL(store));
#endif

View File

@ -208,7 +208,7 @@ private:
bool fThread;
#ifdef HAVE_WINTHREAD
unsigned long iThread;
#elif HAVE_PTHREAD
#elif defined(HAVE_PTHREAD)
pthread_t Thread;
#endif
@ -241,7 +241,7 @@ private:
#ifdef HAVE_WINTHREAD
unsigned long iThread;
#elif HAVE_PTHREAD
#elif defined(HAVE_PTHREAD)
pthread_t Thread;
#endif

View File

@ -357,7 +357,7 @@ bool StdSchedulerThread::Start()
#ifdef HAVE_WINTHREAD
iThread = _beginthread(_ThreadFunc, 0, this);
fThread = (iThread != -1);
#elif HAVE_PTHREAD
#elif defined(HAVE_PTHREAD)
fThread = !pthread_create(&Thread, NULL, _ThreadFunc, this);
#endif
// success?
@ -378,7 +378,7 @@ void StdSchedulerThread::Stop()
if(WaitForSingleObject(hThread, 10000) == WAIT_TIMEOUT)
// ... or kill it in case it refuses to do so
TerminateThread(hThread, -1);
#elif HAVE_PTHREAD
#elif defined(HAVE_PTHREAD)
// wait for thread to terminate itself
// (without security - let's trust these unwashed hackers for once)
pthread_join(Thread, NULL);
@ -394,7 +394,7 @@ void __cdecl StdSchedulerThread::_ThreadFunc(void *pPar)
StdSchedulerThread *pThread = reinterpret_cast<StdSchedulerThread *>(pPar);
_endthreadex(pThread->ThreadFunc());
}
#elif HAVE_PTHREAD
#elif defined(HAVE_PTHREAD)
void *StdSchedulerThread::_ThreadFunc(void *pPar)
{
StdSchedulerThread *pThread = reinterpret_cast<StdSchedulerThread *>(pPar);
@ -426,7 +426,7 @@ bool StdThread::Start()
#ifdef HAVE_WINTHREAD
iThread = _beginthread(_ThreadFunc, 0, this);
fStarted = (iThread != -1);
#elif HAVE_PTHREAD
#elif defined(HAVE_PTHREAD)
fStarted = !pthread_create(&Thread, NULL, _ThreadFunc, this);
#endif
// success?
@ -453,7 +453,7 @@ void StdThread::Stop()
if(WaitForSingleObject(hThread, 10000) == WAIT_TIMEOUT)
// ... or kill him in case he refuses to do so
TerminateThread(hThread, -1);
#elif HAVE_PTHREAD
#elif defined(HAVE_PTHREAD)
// wait for thread to terminate itself
// (whithout security - let's trust these unwashed hackers for once)
pthread_join(Thread, NULL);
@ -469,7 +469,7 @@ void __cdecl StdThread::_ThreadFunc(void *pPar)
StdThread *pThread = reinterpret_cast<StdThread *>(pPar);
_endthreadex(pThread->ThreadFunc());
}
#elif HAVE_PTHREAD
#elif defined(HAVE_PTHREAD)
void *StdThread::_ThreadFunc(void *pPar)
{
StdThread *pThread = reinterpret_cast<StdThread *>(pPar);