From: TimePath Date: Sun, 6 Aug 2017 02:42:34 +0000 (+0000) Subject: Merge branch 'gamepackdeps' into 'master' X-Git-Url: https://de.git.xonotic.org/?a=commitdiff_plain;h=2b9f98b42951a020edb75efa415d00079f25abb3;hp=d81ce8e1dc53e9ca395e8bb10a10e58121969b7c;p=xonotic%2Fnetradiant.git Merge branch 'gamepackdeps' into 'master' dpk vfs: now loads DEPS file from game pack See merge request !71 --- diff --git a/CMakeLists.txt b/CMakeLists.txt index b2b766ea..397737a9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,8 +1,8 @@ -cmake_minimum_required(VERSION 2.8.11 FATAL_ERROR) +cmake_minimum_required(VERSION 2.8.12 FATAL_ERROR) list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake") - project(NetRadiant C CXX) -option(BUILD_RADIANT "Build the gui" ON) + +option(BUILD_RADIANT "Build the GUI" ON) if (CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) set(CMAKE_INSTALL_PREFIX "${PROJECT_SOURCE_DIR}/install" CACHE PATH "..." FORCE) @@ -44,17 +44,18 @@ message(STATUS "Building ${PROJECT_NAME} ${RADIANT_VERSION_STRING} ${RADIANT_ABO set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_STANDARD_REQUIRED ON) -# For some reason the above flags don't really work... -if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" OR CMAKE_COMPILER_IS_GNUCXX) - include(CheckCXXCompilerFlag) - check_cxx_compiler_flag(--std=c++${CMAKE_CXX_STANDARD} STD_CXX) - if (STD_CXX) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --std=c++${CMAKE_CXX_STANDARD}") +if (CMAKE_VERSION VERSION_LESS "3.1") + if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" OR CMAKE_COMPILER_IS_GNUCXX) + include(CheckCXXCompilerFlag) + check_cxx_compiler_flag(--std=c++${CMAKE_CXX_STANDARD} STD_CXX) + if (STD_CXX) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --std=c++${CMAKE_CXX_STANDARD}") + else () + message(SEND_ERROR "Requires C++${CMAKE_CXX_STANDARD} or better") + endif () else () - message(SEND_ERROR "Requires C++${CMAKE_CXX_STANDARD} or better") + message(WARNING "Unrecognized compiler: ${CMAKE_CXX_COMPILER_ID}, make sure it supports C++${CMAKE_CXX_STANDARD}") endif () -else () - message(WARNING "Unrecognized compiler: ${CMAKE_CXX_COMPILER_ID}, make sure it supports C++${CMAKE_CXX_STANDARD}") endif () #----------------------------------------------------------------------- @@ -195,15 +196,14 @@ macro(radiant_tool name) COMMAND ln -f -s "$" "${PROJECT_BINARY_DIR}/${name}.${RADIANT_EXECUTABLE}" VERBATIM ) - install(CODE "execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink \ - ${name}${CMAKE_EXECUTABLE_SUFFIX} \ - ${CMAKE_INSTALL_PREFIX}/${name}.${RADIANT_EXECUTABLE} \ - )") + install(CODE "execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink + ${name}${CMAKE_EXECUTABLE_SUFFIX} ${CMAKE_INSTALL_PREFIX}/${name}.${RADIANT_EXECUTABLE}) + ") endif () endmacro() if (BUILD_RADIANT) - add_subdirectory(radiant build) + add_subdirectory(radiant _radiant) set_target_properties(radiant PROPERTIES COMPILE_DEFINITIONS RADIANT_EXECUTABLE="${RADIANT_EXECUTABLE}" ) @@ -246,14 +246,14 @@ install( "${PROJECT_BINARY_DIR}/RADIANT_MAJOR" "${PROJECT_BINARY_DIR}/RADIANT_MINOR" "${PROJECT_BINARY_DIR}/RADIANT_PATCH" - DESTINATION ${CMAKE_INSTALL_PREFIX} + DESTINATION . ) install( DIRECTORY - ${PROJECT_SOURCE_DIR}/setup/data/tools/ - ${PROJECT_SOURCE_DIR}/docs - DESTINATION ${CMAKE_INSTALL_PREFIX} + setup/data/tools/ + docs + DESTINATION . ) set(GAME_FILES @@ -283,6 +283,8 @@ set(GAME_FILES ${_tmp}) install( DIRECTORY ${GAME_FILES} - DESTINATION ${CMAKE_INSTALL_PREFIX} + DESTINATION . OPTIONAL ) + +include(cmake/scripts/package.cmake) diff --git a/cmake/scripts/package.cmake b/cmake/scripts/package.cmake new file mode 100644 index 00000000..be530ec1 --- /dev/null +++ b/cmake/scripts/package.cmake @@ -0,0 +1,16 @@ +set(CPACK_PACKAGE_NAME "NetRadiant") +set(CPACK_PACKAGE_VERSION_MAJOR "${NetRadiant_VERSION_MAJOR}") +set(CPACK_PACKAGE_VERSION_MINOR "${NetRadiant_VERSION_MINOR}") +set(CPACK_PACKAGE_VERSION_PATCH "${NetRadiant_VERSION_PATCH}") + +# binary: --target package +set(CPACK_GENERATOR "ZIP") +set(CPACK_STRIP_FILES 1) + +# source: --target package_source +set(CPACK_SOURCE_GENERATOR "ZIP") +set(CPACK_SOURCE_IGNORE_FILES "/\\\\.git/;/build/;/install/") + +# configure +include(InstallRequiredSystemLibraries) +include(CPack) diff --git a/contrib/bobtoolz/DMap.cpp b/contrib/bobtoolz/DMap.cpp index 72356946..18edc3b1 100644 --- a/contrib/bobtoolz/DMap.cpp +++ b/contrib/bobtoolz/DMap.cpp @@ -58,7 +58,7 @@ DMap::~DMap(){ ClearEntities(); } -DEntity* DMap::AddEntity( char *classname, int ID ){ +DEntity* DMap::AddEntity( const char *classname, int ID ){ DEntity* newEntity; if ( ID == -1 ) { newEntity = new DEntity( classname, m_nNextEntity++ ); diff --git a/contrib/bobtoolz/DMap.h b/contrib/bobtoolz/DMap.h index b4a3f79b..f527d04d 100644 --- a/contrib/bobtoolz/DMap.h +++ b/contrib/bobtoolz/DMap.h @@ -45,7 +45,7 @@ DEntity* GetWorldSpawn(); void ClearEntities(); DEntity* GetEntityForID( int ID ); -DEntity* AddEntity( char* classname = "worldspawn", int ID = -1 ); +DEntity* AddEntity( const char* classname = "worldspawn", int ID = -1 ); std::list entityList; diff --git a/contrib/bobtoolz/bobToolz-GTK.cpp b/contrib/bobtoolz/bobToolz-GTK.cpp index 6cf91a0b..007d51af 100644 --- a/contrib/bobtoolz/bobToolz-GTK.cpp +++ b/contrib/bobtoolz/bobToolz-GTK.cpp @@ -57,10 +57,10 @@ void BobToolz_destroy(){ } // plugin name -char* PLUGIN_NAME = "bobToolz"; +const char* PLUGIN_NAME = "bobToolz"; // commands in the menu -static char* PLUGIN_COMMANDS = "About...,-,Reset Textures...,PitOMatic,-,Vis Viewer,Brush Cleanup,Polygon Builder,Caulk Selection,-,Tree Planter,Drop Entity,Plot Splines,-,Merge Patches,Split patches,Split patches cols,Split patches rows,Turn edge"; +static const char* PLUGIN_COMMANDS = "About...,-,Reset Textures...,PitOMatic,-,Vis Viewer,Brush Cleanup,Polygon Builder,Caulk Selection,-,Tree Planter,Drop Entity,Plot Splines,-,Merge Patches,Split patches,Split patches cols,Split patches rows,Turn edge"; // globals ui::Widget g_pRadiantWnd; diff --git a/contrib/bobtoolz/dialogs/dialogs-gtk.cpp b/contrib/bobtoolz/dialogs/dialogs-gtk.cpp index 41e4d410..fb9c1806 100644 --- a/contrib/bobtoolz/dialogs/dialogs-gtk.cpp +++ b/contrib/bobtoolz/dialogs/dialogs-gtk.cpp @@ -115,7 +115,7 @@ static void dialog_button_callback_settex( GtkWidget *widget, gpointer data ){ Data validation Routines ---------------------------------*/ -bool ValidateTextFloat( const char* pData, char* error_title, float* value ){ +bool ValidateTextFloat( const char* pData, const char* error_title, float* value ){ if ( pData ) { float testNum = (float)atof( pData ); @@ -134,7 +134,7 @@ bool ValidateTextFloat( const char* pData, char* error_title, float* value ){ return FALSE; } -bool ValidateTextFloatRange( const char* pData, float min, float max, char* error_title, float* value ){ +bool ValidateTextFloatRange( const char* pData, float min, float max, const char* error_title, float* value ){ char error_buffer[256]; sprintf( error_buffer, "Please Enter A Floating Point Number Between %.3f and %.3f", min, max ); @@ -156,7 +156,7 @@ bool ValidateTextFloatRange( const char* pData, float min, float max, char* erro return FALSE; } -bool ValidateTextIntRange( const char* pData, int min, int max, char* error_title, int* value ){ +bool ValidateTextIntRange( const char* pData, int min, int max, const char* error_title, int* value ){ char error_buffer[256]; sprintf( error_buffer, "Please Enter An Integer Between %i and %i", min, max ); @@ -178,7 +178,7 @@ bool ValidateTextIntRange( const char* pData, int min, int max, char* error_titl return FALSE; } -bool ValidateTextInt( const char* pData, char* error_title, int* value ){ +bool ValidateTextInt( const char* pData, const char* error_title, int* value ){ if ( pData ) { int testNum = atoi( pData ); @@ -584,7 +584,7 @@ EMessageBoxReturn DoBuildStairsBox( BuildStairsRS* rs ){ EMessageBoxReturn ret; int loop = 1; - char *text = "Please set a value in the boxes below and press 'OK' to build the stairs"; + const char *text = "Please set a value in the boxes below and press 'OK' to build the stairs"; auto window = ui::Window( ui::window_type::TOP ); @@ -1891,7 +1891,7 @@ EMessageBoxReturn DoMakeChainBox( MakeChainRS* rs ){ EMessageBoxReturn ret; int loop = 1; - char const *text = "Please set a value in the boxes below and press 'OK' to make a chain"; + const char *text = "Please set a value in the boxes below and press 'OK' to make a chain"; auto window = ui::Window( ui::window_type::TOP ); diff --git a/contrib/prtview/prtview.cpp b/contrib/prtview/prtview.cpp index 301ac9ea..ffb813ea 100644 --- a/contrib/prtview/prtview.cpp +++ b/contrib/prtview/prtview.cpp @@ -162,7 +162,7 @@ void SaveConfig(){ #define CONFIG_SECTION "Configuration" -int INIGetInt( char *key, int def ){ +int INIGetInt( const char *key, int def ){ char value[1024]; if ( read_var( INIfn.c_str(), CONFIG_SECTION, key, value ) ) { @@ -173,7 +173,7 @@ int INIGetInt( char *key, int def ){ } } -void INISetInt( char *key, int val, char *comment /* = NULL */ ){ +void INISetInt( const char *key, int val, const char *comment /* = NULL */ ){ char s[1000]; if ( comment ) { diff --git a/contrib/prtview/prtview.h b/contrib/prtview/prtview.h index e149ae80..df84d6a2 100644 --- a/contrib/prtview/prtview.h +++ b/contrib/prtview/prtview.h @@ -25,8 +25,8 @@ void InitInstance(); void SaveConfig(); -int INIGetInt( char *key, int def ); -void INISetInt( char *key, int val, char *comment = 0 ); +int INIGetInt( const char *key, int def ); +void INISetInt( const char *key, int val, const char *comment = 0 ); #define IDOK 1 #define IDCANCEL 2 diff --git a/contrib/shaderplug/shaderplug.cpp b/contrib/shaderplug/shaderplug.cpp index e8f4f5fc..75171bd8 100644 --- a/contrib/shaderplug/shaderplug.cpp +++ b/contrib/shaderplug/shaderplug.cpp @@ -118,7 +118,7 @@ void LoadTextureFile( const char* filename ){ typedef FreeCaller1 LoadTextureFileCaller; -void GetTextures( char* extension ){ +void GetTextures( const char* extension ){ GlobalFileSystem().forEachFile( "textures/", extension, LoadTextureFileCaller(), 0 ); } diff --git a/contrib/ufoaiplug/ufoai_level.cpp b/contrib/ufoaiplug/ufoai_level.cpp index c7554e4d..41a4c62b 100644 --- a/contrib/ufoaiplug/ufoai_level.cpp +++ b/contrib/ufoaiplug/ufoai_level.cpp @@ -130,7 +130,7 @@ void get_team_count( const char *classname, int *count, int *team ){ /** * @brief Some default values to worldspawn like maxlevel and so on */ -void assign_default_values_to_worldspawn( bool override, char **returnMsg ){ +void assign_default_values_to_worldspawn( bool override, const char **returnMsg ){ static char message[1024]; Entity* worldspawn; int teams = 0; @@ -190,7 +190,7 @@ int check_entity_flags( const char *classname, const char *flag ){ * @brief Will check e.g. the map entities for valid values * @todo: check for maxlevel */ -void check_map_values( char **returnMsg ){ +void check_map_values( const char **returnMsg ){ static char message[1024]; int count = 0; int teams = 0; diff --git a/libs/splines/q_shared.cpp b/libs/splines/q_shared.cpp index 033a6ee3..204d980d 100644 --- a/libs/splines/q_shared.cpp +++ b/libs/splines/q_shared.cpp @@ -716,7 +716,7 @@ void QDECL Com_sprintf( char *dest, int size, const char *fmt, ... ) { FIXME: make this buffer size safe someday ============ */ -char * QDECL va( char *format, ... ) { +char *QDECL va( const char *format, ... ) { va_list argptr; static char string[2][32000]; // in case va is called by nested functions static int index = 0; @@ -750,7 +750,7 @@ char * QDECL va( char *format, ... ) { FIXME: overflow check? =============== */ -char *Info_ValueForKey( const char *s, const char *key ) { +const char *Info_ValueForKey( const char *s, const char *key ) { char pkey[MAX_INFO_KEY]; static char value[2][MAX_INFO_VALUE]; // use two buffers so compares // work without stomping on each other diff --git a/libs/splines/q_shared.h b/libs/splines/q_shared.h index 6ebfb99f..61f1024b 100644 --- a/libs/splines/q_shared.h +++ b/libs/splines/q_shared.h @@ -646,7 +646,7 @@ float BigFloat( float l ); float LittleFloat( float l ); void Swap_Init( void ); -char * QDECL va( char *format, ... ); +char *QDECL va( const char *format, ... ); #ifdef __cplusplus } @@ -776,7 +776,7 @@ int Com_IndexForGrowListElement( const growList_t *list, const void *ele // // key / value info strings // -char *Info_ValueForKey( const char *s, const char *key ); +const char *Info_ValueForKey( const char *s, const char *key ); void Info_RemoveKey( char *s, const char *key ); void Info_SetValueForKey( char *s, const char *key, const char *value ); qboolean Info_Validate( const char *s ); diff --git a/libs/str.h b/libs/str.h index 9090bf2d..fcc328b1 100644 --- a/libs/str.h +++ b/libs/str.h @@ -254,7 +254,6 @@ const char* Left( std::size_t n ){ } else { - g_pStrWork = ""; g_pStrWork = new char[1]; g_pStrWork[0] = '\0'; } @@ -290,7 +289,6 @@ const char* Mid( std::size_t first, std::size_t n ) const { } else { - g_pStrWork = ""; g_pStrWork = new char[1]; g_pStrWork[0] = '\0'; } diff --git a/radiant/console.cpp b/radiant/console.cpp index d4202247..2f156dd2 100644 --- a/radiant/console.cpp +++ b/radiant/console.cpp @@ -143,7 +143,7 @@ public: GtkTextBufferOutputStream( GtkTextBuffer* textBuffer, GtkTextIter* iter, GtkTextTag* tag ) : textBuffer( textBuffer ), iter( iter ), tag( tag ){ } std::size_t write( const char* buffer, std::size_t length ){ - gtk_text_buffer_insert_with_tags( textBuffer, iter, buffer, gint( length ), tag, 0 ); + gtk_text_buffer_insert_with_tags( textBuffer, iter, buffer, gint( length ), tag, NULL ); return length; } }; @@ -174,9 +174,9 @@ std::size_t Sys_Print( int level, const char* buf, std::size_t length ){ const GdkColor yellow = { 0, 0xb0ff, 0xb0ff, 0x0000 }; const GdkColor red = { 0, 0xffff, 0x0000, 0x0000 }; - static GtkTextTag* error_tag = gtk_text_buffer_create_tag( buffer, "red_foreground", "foreground-gdk", &red, 0 ); - static GtkTextTag* warning_tag = gtk_text_buffer_create_tag( buffer, "yellow_foreground", "foreground-gdk", &yellow, 0 ); - static GtkTextTag* standard_tag = gtk_text_buffer_create_tag( buffer, "black_foreground", 0 ); + static GtkTextTag* error_tag = gtk_text_buffer_create_tag( buffer, "red_foreground", "foreground-gdk", &red, NULL ); + static GtkTextTag* warning_tag = gtk_text_buffer_create_tag( buffer, "yellow_foreground", "foreground-gdk", &yellow, NULL ); + static GtkTextTag* standard_tag = gtk_text_buffer_create_tag( buffer, "black_foreground", NULL ); GtkTextTag* tag; switch ( level ) { diff --git a/radiant/entitylist.cpp b/radiant/entitylist.cpp index 35cbc847..dad00e4e 100644 --- a/radiant/entitylist.cpp +++ b/radiant/entitylist.cpp @@ -115,22 +115,22 @@ void entitylist_treeviewcolumn_celldatafunc( GtkTreeViewColumn* column, GtkCellR if ( node != 0 ) { gtk_cell_renderer_set_fixed_size( renderer, -1, -1 ); char* name = const_cast( node_get_name( *node ) ); - g_object_set( G_OBJECT( renderer ), "text", name, "visible", TRUE, 0 ); + g_object_set( G_OBJECT( renderer ), "text", name, "visible", TRUE, NULL ); //globalOutputStream() << "rendering cell " << makeQuoted(name) << "\n"; GtkStyle* style = gtk_widget_get_style( GTK_WIDGET( getEntityList().m_tree_view ) ); if ( instance->childSelected() ) { - g_object_set( G_OBJECT( renderer ), "cell-background-gdk", &style->base[GTK_STATE_ACTIVE], 0 ); + g_object_set( G_OBJECT( renderer ), "cell-background-gdk", &style->base[GTK_STATE_ACTIVE], NULL ); } else { - g_object_set( G_OBJECT( renderer ), "cell-background-gdk", &style->base[GTK_STATE_NORMAL], 0 ); + g_object_set( G_OBJECT( renderer ), "cell-background-gdk", &style->base[GTK_STATE_NORMAL], NULL ); } } else { gtk_cell_renderer_set_fixed_size( renderer, -1, 0 ); - g_object_set( G_OBJECT( renderer ), "text", "", "visible", FALSE, 0 ); + g_object_set( G_OBJECT( renderer ), "text", "", "visible", FALSE, NULL ); } } diff --git a/radiant/gtkdlgs.cpp b/radiant/gtkdlgs.cpp index a5e03e31..79944252 100644 --- a/radiant/gtkdlgs.cpp +++ b/radiant/gtkdlgs.cpp @@ -919,7 +919,7 @@ EMessageBoxReturn DoLightIntensityDlg( int *intensity ){ // ============================================================================= // Add new shader tag dialog -EMessageBoxReturn DoShaderTagDlg( CopiedString* tag, char* title ){ +EMessageBoxReturn DoShaderTagDlg( CopiedString* tag, const char* title ){ ModalDialog dialog; GtkEntry* textentry; ModalDialogButton ok_button( dialog, eIDOK ); @@ -980,7 +980,7 @@ EMessageBoxReturn DoShaderTagDlg( CopiedString* tag, char* title ){ return ret; } -EMessageBoxReturn DoShaderInfoDlg( const char* name, const char* filename, char* title ){ +EMessageBoxReturn DoShaderInfoDlg( const char* name, const char* filename, const char* title ){ ModalDialog dialog; ModalDialogButton ok_button( dialog, eIDOK ); diff --git a/radiant/gtkdlgs.h b/radiant/gtkdlgs.h index 0ff194e6..05f8b8b9 100644 --- a/radiant/gtkdlgs.h +++ b/radiant/gtkdlgs.h @@ -35,8 +35,8 @@ #include "string/string.h" EMessageBoxReturn DoLightIntensityDlg( int *intensity ); -EMessageBoxReturn DoShaderTagDlg( CopiedString *tag, char* title ); -EMessageBoxReturn DoShaderInfoDlg( const char* name, const char* filename, char* title ); +EMessageBoxReturn DoShaderTagDlg( CopiedString *tag, const char* title ); +EMessageBoxReturn DoShaderInfoDlg( const char* name, const char* filename, const char* title ); EMessageBoxReturn DoTextureLayout( float *fx, float *fy ); void DoTextEditor( const char* filename, int cursorpos ); diff --git a/tools/quake3/q3data/md3lib.c b/tools/quake3/q3data/md3lib.c index f2f0eee5..66dfa52d 100644 --- a/tools/quake3/q3data/md3lib.c +++ b/tools/quake3/q3data/md3lib.c @@ -168,7 +168,7 @@ void MD3_Dump( const char *filename ){ printf( " num tags: %d\n", header.numTags ); printf( " num surfaces: %d\n", header.numSurfaces ); printf( " num skins: %d\n", header.numSkins ); - printf( " file size: %d\n", fileSize ); + printf( " file size: %ld\n", fileSize ); printf( "--- TAGS ---\n" ); pTag = ( md3Tag_t * ) ( ( ( char * ) buffer ) + header.ofsTags ); diff --git a/tools/quake3/q3data/p3dlib.c b/tools/quake3/q3data/p3dlib.c index 2da1ae9b..0b228e2f 100644 --- a/tools/quake3/q3data/p3dlib.c +++ b/tools/quake3/q3data/p3dlib.c @@ -31,9 +31,10 @@ #define MAX_POLYSETS 64 #if defined ( __linux__ ) || defined ( __APPLE__ ) -#define _strcmpi Q_stricmp -#define filelength Q_filelength -#define strlwr strlower + #include "cmdlib.h" + #define _strcmpi Q_stricmp + #define filelength Q_filelength + #define strlwr strlower #endif typedef struct { diff --git a/tools/quake3/q3data/video.c b/tools/quake3/q3data/video.c index b7be982c..9ce704a3 100644 --- a/tools/quake3/q3data/video.c +++ b/tools/quake3/q3data/video.c @@ -1107,7 +1107,7 @@ void Cmd_Video( void ){ printf( "\n" ); - printf( "Total size: %i\n", ftell( output ) ); + printf( "Total size: %ld\n", ftell( output ) ); printf( "Average error: %f\n", sumError / ( frame - startframe ) ); printf( "Max error: %f\n", maxError );