From owner-svn-ports-head@freebsd.org Fri Mar 25 06:47:18 2016 Return-Path: Delivered-To: svn-ports-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3A2B8ADD82B; Fri, 25 Mar 2016 06:47:18 +0000 (UTC) (envelope-from danfe@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id C77B61E35; Fri, 25 Mar 2016 06:47:17 +0000 (UTC) (envelope-from danfe@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u2P6lHjX027968; Fri, 25 Mar 2016 06:47:17 GMT (envelope-from danfe@FreeBSD.org) Received: (from danfe@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u2P6lFXY027955; Fri, 25 Mar 2016 06:47:15 GMT (envelope-from danfe@FreeBSD.org) Message-Id: <201603250647.u2P6lFXY027955@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: danfe set sender to danfe@FreeBSD.org using -f From: Alexey Dokuchaev Date: Fri, 25 Mar 2016 06:47:15 +0000 (UTC) To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r411820 - in head/games: . trenchbroom trenchbroom/files X-SVN-Group: ports-head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-ports-head@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: SVN commit messages for the ports tree for head List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 25 Mar 2016 06:47:18 -0000 Author: danfe Date: Fri Mar 25 06:47:15 2016 New Revision: 411820 URL: https://svnweb.freebsd.org/changeset/ports/411820 Log: Add a port of TrenchBroom, a cross-platform level editor for Quake-engine based games. It's currently in beta (2.0.0 release is planned on June 22 which is Quake's 20th anniversary). WWW: http://kristianduske.com/trenchbroom/ Added: head/games/trenchbroom/ head/games/trenchbroom/Makefile (contents, props changed) head/games/trenchbroom/distinfo (contents, props changed) head/games/trenchbroom/files/ head/games/trenchbroom/files/patch-CMakeLists.txt (contents, props changed) head/games/trenchbroom/files/patch-cmake_GenerateVersion.cmake.in (contents, props changed) head/games/trenchbroom/files/patch-cmake_TrenchBroomApp.cmake (contents, props changed) head/games/trenchbroom/files/patch-cmake_wxWidgets.cmake (contents, props changed) head/games/trenchbroom/files/patch-freebsd-support (contents, props changed) head/games/trenchbroom/files/patch-git-0f4b6d2 (contents, props changed) head/games/trenchbroom/files/patch-shared_ptr (contents, props changed) head/games/trenchbroom/pkg-descr (contents, props changed) head/games/trenchbroom/pkg-plist (contents, props changed) Modified: head/games/Makefile Modified: head/games/Makefile ============================================================================== --- head/games/Makefile Fri Mar 25 06:38:23 2016 (r411819) +++ head/games/Makefile Fri Mar 25 06:47:15 2016 (r411820) @@ -986,6 +986,7 @@ SUBDIR += traindirector SUBDIR += traingame SUBDIR += tremulous + SUBDIR += trenchbroom SUBDIR += trigger-data SUBDIR += trigger-rally SUBDIR += trimines Added: head/games/trenchbroom/Makefile ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/games/trenchbroom/Makefile Fri Mar 25 06:47:15 2016 (r411820) @@ -0,0 +1,46 @@ +# Created by: Alexey Dokuchaev +# $FreeBSD$ + +PORTNAME= trenchbroom +PORTVERSION= 2.0.0.b +CATEGORIES= games + +MAINTAINER= danfe@FreeBSD.org +COMMENT= Cross-platform level editor for Quake-engine based games + +LICENSE= GPLv3 + +LIB_DEPENDS= libfreeimage.so:${PORTSDIR}/graphics/freeimage + +USE_GITHUB= yes +GH_ACCOUNT= kduske +GH_PROJECT= TrenchBroom +GH_TAGNAME= ed46601 + +USES= cmake compiler:c++11-lib pkgconfig +USE_GL= glew +USE_WX= 3.0+ +CMAKE_ARGS= -DAPP_BUILD_CHANNEL:STRING="for ${OPSYS}/${ARCH}" + +PORTDOCS= README.md + +OPTIONS_DEFINE= DOCS + +post-patch: + @${GREP} -Rl --null std::tr1:: ${WRKSRC}/common/src | ${XARGS} -0 \ + ${REINPLACE_CMD} -e 's,std::tr1::,std::,g' + @${REINPLACE_CMD} -e 's,Build ,&Type: ,' \ + ${WRKSRC}/common/src/View/AppInfoPanel.cpp + @${REINPLACE_CMD} -e 's,%%DATADIR%%,${DATADIR},' \ + ${WRKSRC}/common/src/IO/SystemPaths.cpp + +do-install: + ${INSTALL_PROGRAM} ${WRKSRC}/TrenchBroom ${STAGEDIR}${PREFIX}/bin + @${RMDIR} ${WRKSRC}/Resources/help || : + cd ${WRKSRC}/Resources && ${COPYTREE_SHARE} . ${STAGEDIR}${DATADIR} + +do-install-DOCS-on: + @${MKDIR} ${STAGEDIR}${DOCSDIR} + ${INSTALL_DATA} ${WRKSRC}/README.md ${STAGEDIR}${DOCSDIR} + +.include Added: head/games/trenchbroom/distinfo ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/games/trenchbroom/distinfo Fri Mar 25 06:47:15 2016 (r411820) @@ -0,0 +1,2 @@ +SHA256 (kduske-TrenchBroom-2.0.0.b-ed46601_GH0.tar.gz) = d0bac990d9b19f4d7f7aba392a561d1ee87ca396af2fce42a4989021d8466312 +SIZE (kduske-TrenchBroom-2.0.0.b-ed46601_GH0.tar.gz) = 20513562 Added: head/games/trenchbroom/files/patch-CMakeLists.txt ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/games/trenchbroom/files/patch-CMakeLists.txt Fri Mar 25 06:47:15 2016 (r411820) @@ -0,0 +1,40 @@ +--- CMakeLists.txt.orig 2016-03-09 20:19:17 UTC ++++ CMakeLists.txt +@@ -18,12 +18,12 @@ SET(LIB_INCLUDE_DIR "${LIB_DIR}/include" + SET(LIB_SOURCE_DIR "${LIB_DIR}/src") + + INCLUDE(cmake/wxWidgets.cmake) +-INCLUDE(cmake/FreeType.cmake) ++#INCLUDE(cmake/FreeType.cmake) + INCLUDE(cmake/FreeImage.cmake) + +-INCLUDE(cmake/GTest.cmake) +-INCLUDE(cmake/GMock.cmake) +-INCLUDE(cmake/Glew.cmake) ++#INCLUDE(cmake/GTest.cmake) ++#INCLUDE(cmake/GMock.cmake) ++#INCLUDE(cmake/Glew.cmake) + INCLUDE(cmake/Common.cmake) + + # Include directories +@@ -45,12 +45,10 @@ ENDIF() + # Compiler configuration + IF(COMPILER_IS_CLANG) + MESSAGE(STATUS "Compiler is Clang") +- SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O3") +- SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Weverything -pedantic -Wno-format -Wno-variadic-macros -Wno-c++11-long-long -Wno-c99-extensions -Wno-padded -Wno-unused-parameter -Wno-global-constructors -Wno-exit-time-destructors -Wno-weak-vtables -Wno-weak-template-vtables -Wno-float-equal -Wno-used-but-marked-unused -Wno-format-nonliteral -Wno-missing-noreturn -Wno-unused-local-typedef -stdlib=libstdc++") ++ SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Weverything -pedantic -Wno-format -Wno-variadic-macros -Wno-c++11-long-long -Wno-c99-extensions -Wno-padded -Wno-unused-parameter -Wno-global-constructors -Wno-exit-time-destructors -Wno-weak-vtables -Wno-weak-template-vtables -Wno-float-equal -Wno-used-but-marked-unused -Wno-format-nonliteral -Wno-missing-noreturn -Wno-unused-local-typedef") + ELSEIF(COMPILER_IS_GNU) + MESSAGE(STATUS "Compiler is GNU") +- SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O3") +- SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -pedantic -Wno-format -Wno-variadic-macros -Wno-padded -Wno-unused-parameter -Wno-float-equal -Wno-format-nonliteral -Wno-missing-noreturn") ++ SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x -Wall -Wextra -pedantic -Wno-format -Wno-variadic-macros -Wno-padded -Wno-unused-parameter -Wno-float-equal -Wno-format-nonliteral -Wno-missing-noreturn") + ELSEIF(COMPILER_IS_MSVC) + MESSAGE(STATUS "Compiler is MSVC") + SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /Ox") +@@ -77,4 +75,4 @@ IF(CMAKE_BUILD_TYPE MATCHES "Debug") + ENDIF() + + INCLUDE(cmake/TrenchBroomApp.cmake) +-INCLUDE(cmake/TrenchBroomTest.cmake) ++#INCLUDE(cmake/TrenchBroomTest.cmake) Added: head/games/trenchbroom/files/patch-cmake_GenerateVersion.cmake.in ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/games/trenchbroom/files/patch-cmake_GenerateVersion.cmake.in Fri Mar 25 06:47:15 2016 (r411820) @@ -0,0 +1,12 @@ +--- cmake/GenerateVersion.cmake.in.orig 2016-03-09 20:19:17 UTC ++++ cmake/GenerateVersion.cmake.in +@@ -2,7 +2,7 @@ INCLUDE("@CMAKE_SOURCE_DIR@/cmake/Utils. + GET_APP_VERSION(@APP_DIR@ APP_VERSION_MAJOR APP_VERSION_MINOR APP_VERSION_MAINTENANCE) + GET_BUILD_ID("@GIT_EXECUTABLE@" "@CMAKE_SOURCE_DIR@" APP_BUILD_ID) + +-SET(APP_BUILD_CHANNEL @APP_BUILD_CHANNEL@) +-SET(APP_BUILD_TYPE @CMAKE_BUILD_TYPE@) ++SET(APP_BUILD_CHANNEL "@APP_BUILD_CHANNEL@") ++SET(APP_BUILD_TYPE "@CMAKE_BUILD_TYPE@") + STRING(SUBSTRING @CMAKE_BUILD_TYPE@ 0 1 APP_BUILD_TYPE_SHORT) + CONFIGURE_FILE("@APP_SOURCE_DIR@/Version.h.in" "@CMAKE_CURRENT_BINARY_DIR@/Version.h" @ONLY) Added: head/games/trenchbroom/files/patch-cmake_TrenchBroomApp.cmake ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/games/trenchbroom/files/patch-cmake_TrenchBroomApp.cmake Fri Mar 25 06:47:15 2016 (r411820) @@ -0,0 +1,47 @@ +--- cmake/TrenchBroomApp.cmake.orig 2016-03-09 20:19:17 UTC ++++ cmake/TrenchBroomApp.cmake +@@ -1,4 +1,4 @@ +-INCLUDE(cmake/GenerateHelp.cmake) ++#INCLUDE(cmake/GenerateHelp.cmake) + + SET(APP_DIR "${CMAKE_SOURCE_DIR}/app") + SET(APP_SOURCE_DIR "${APP_DIR}/src") +@@ -84,8 +84,8 @@ ENDIF() + + ADD_EXECUTABLE(TrenchBroom WIN32 MACOSX_BUNDLE ${APP_SOURCE} $) + +-TARGET_LINK_LIBRARIES(TrenchBroom glew ${wxWidgets_LIBRARIES} ${FREETYPE_LIBRARIES} ${FREEIMAGE_LIBRARIES}) +-SET_TARGET_PROPERTIES(TrenchBroom PROPERTIES COMPILE_DEFINITIONS "GLEW_STATIC") ++TARGET_LINK_LIBRARIES(TrenchBroom GLEW freetype ${wxWidgets_LIBRARIES} ${FREETYPE_LIBRARIES} ${FREEIMAGE_LIBRARIES}) ++#SET_TARGET_PROPERTIES(TrenchBroom PROPERTIES COMPILE_DEFINITIONS "GLEW_STATIC") + + GET_APP_VERSION("${APP_DIR}" CPACK_PACKAGE_VERSION_MAJOR CPACK_PACKAGE_VERSION_MINOR CPACK_PACKAGE_VERSION_PATCH) + GET_BUILD_ID("${GIT_EXECUTABLE}" "${CMAKE_SOURCE_DIR}" APP_BUILD_ID) +@@ -102,7 +102,7 @@ ADD_CUSTOM_TARGET(GenerateVersion + ${CMAKE_COMMAND} -P "${CMAKE_CURRENT_BINARY_DIR}/GenerateVersion.cmake") + ADD_DEPENDENCIES(TrenchBroom GenerateVersion) + +-ADD_DEPENDENCIES(TrenchBroom GenerateHelp) ++#ADD_DEPENDENCIES(TrenchBroom GenerateHelp) + + IF(APPLE) + # Configure variables that are substituted into the plist +@@ -136,14 +136,15 @@ IF(WIN32) + ) + ENDIF() + +-# Properly link to OpenGL libraries on Linux +-IF(${CMAKE_SYSTEM_NAME} MATCHES "Linux") ++# Properly link to OpenGL libraries on Unix-like systems ++IF(${CMAKE_SYSTEM_NAME} MATCHES "Linux|FreeBSD") + FIND_PACKAGE(OpenGL) ++ INCLUDE_DIRECTORIES(SYSTEM ${OPENGL_INCLUDE_DIR}) + TARGET_LINK_LIBRARIES(TrenchBroom ${OPENGL_LIBRARIES}) + ENDIF() + + # Set up the resources and DLLs for the executable +-IF(WIN32 OR ${CMAKE_SYSTEM_NAME} MATCHES "Linux") ++IF(WIN32 OR ${CMAKE_SYSTEM_NAME} MATCHES "Linux|FreeBSD") + # Copy button images to resources directory + ADD_CUSTOM_COMMAND(TARGET TrenchBroom POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy_directory "${APP_DIR}/resources/graphics/images" "$/Resources/images" Added: head/games/trenchbroom/files/patch-cmake_wxWidgets.cmake ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/games/trenchbroom/files/patch-cmake_wxWidgets.cmake Fri Mar 25 06:47:15 2016 (r411820) @@ -0,0 +1,31 @@ +--- cmake/wxWidgets.cmake.orig 2016-03-09 20:19:17 UTC ++++ cmake/wxWidgets.cmake +@@ -15,21 +15,16 @@ IF(WIN32) + ELSE() + SET(wxWidgets_USE_UNICODE ON) + SET(wxWidgets_USE_UNIVERSAL ON) +- IF(CMAKE_BUILD_TYPE STREQUAL "Debug") +- SET(wxWidgets_USE_DEBUG ON) +- SET(wxWidgets_USE_STATIC OFF) +- MESSAGE(STATUS "Using debug version of wxWidgets") +- ELSE() +- SET(wxWidgets_USE_DEBUG OFF) +- SET(wxWidgets_USE_STATIC ON) +- MESSAGE(STATUS "Using static wxWidgets library") +- ENDIF() ++ SET(wxWidgets_USE_DEBUG OFF) ++ SET(wxWidgets_USE_STATIC OFF) ++ MESSAGE(STATUS "Using dynamic wxWidgets library") + ENDIF() + +-SET(wxWidgets_FIND_COMPONENTS gl core base adv) ++#SET(wxWidgets_FIND_COMPONENTS gl core base adv) ++FIND_PACKAGE(wxWidgets 3.0 COMPONENTS gl core base adv) + +-SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules/") +-FIND_PACKAGE(wxWidgetsTB REQUIRED) ++#SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules/") ++#FIND_PACKAGE(wxWidgetsTB REQUIRED) + INCLUDE("${wxWidgets_USE_FILE}") + + # Remove QuickTime framework on OS X; it's not needed and produces a linker warning Added: head/games/trenchbroom/files/patch-freebsd-support ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/games/trenchbroom/files/patch-freebsd-support Fri Mar 25 06:47:15 2016 (r411820) @@ -0,0 +1,66 @@ +--- common/src/IO/SystemPaths.cpp.orig 2016-03-09 20:19:17 UTC ++++ common/src/IO/SystemPaths.cpp +@@ -28,6 +28,9 @@ + #include + #elif defined __linux__ + #include ++#elif defined __FreeBSD__ ++#include ++#include + #endif + + namespace TrenchBroom { +@@ -74,6 +77,19 @@ namespace TrenchBroom { + const Path appPath(appPathStr); + return appPath.deleteLastComponent(); + } ++#elif defined __FreeBSD__ ++ Path appDirectory() { ++ char buf[1024]; ++ const int mib[4] = { CTL_KERN, KERN_PROC, KERN_PROC_PATHNAME, -1 }; ++ size_t len = sizeof(buf); ++ ++ const int result = sysctl(mib, 4, buf, &len, 0x0, 0); ++ assert(result == 0); ++ ++ const String appPathStr(buf); ++ const Path appPath(appPathStr); ++ return appPath.deleteLastComponent(); ++ } + #endif + + #if defined __APPLE__ +@@ -99,9 +115,9 @@ namespace TrenchBroom { + Path resourceDirectory() { + return appDirectory() + Path("Resources"); + } +-#elif defined __linux__ ++#elif defined __linux__ || defined __FreeBSD__ + Path resourceDirectory() { +- return appDirectory() + Path("Resources"); ++ return Path("%%DATADIR%%"); + } + #endif + +--- common/src/View/KeyboardShortcut.cpp.orig 2016-03-09 20:19:17 UTC ++++ common/src/View/KeyboardShortcut.cpp +@@ -74,7 +74,7 @@ namespace TrenchBroom { + } + + bool KeyboardShortcut::isShortcutValid(const int key, const int modifier1, const int modifier2, const int modifier3) { +-#ifdef __linux__ ++#if defined __linux__ || defined __FreeBSD__ + // TAB and Escape are never allowed on GTK2: + if (key == WXK_TAB || key == WXK_ESCAPE) + return false; +--- common/src/View/ViewConstants.h.orig 2016-03-09 20:19:17 UTC ++++ common/src/View/ViewConstants.h +@@ -63,7 +63,7 @@ namespace TrenchBroom { + static const int TextBoxInnerMargin = 0; + static const int TabBarBarLeftMargin = 10; + static const int ToggleButtonStyle = 0x08000000; // wxBORDER_SUNKEN +-#elif defined __linux__ ++#elif defined __linux__ || defined __FreeBSD__ + static const int DialogOuterMargin = 10; + static const int DialogButtonTopMargin = 10; + static const int DialogButtonSideMargin = 0; Added: head/games/trenchbroom/files/patch-git-0f4b6d2 ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/games/trenchbroom/files/patch-git-0f4b6d2 Fri Mar 25 06:47:15 2016 (r411820) @@ -0,0 +1,116 @@ +--- common/src/IO/ConfigParser.cpp.orig 2016-03-09 20:19:17 UTC ++++ common/src/IO/ConfigParser.cpp +@@ -61,10 +61,10 @@ namespace TrenchBroom { + case '\t': + case '\n': + case '\r': +- discardWhile(Whitespace); ++ discardWhile(Whitespace()); + break; + default: { +- const char* e = readString(Whitespace + "="); ++ const char* e = readString(Whitespace() + "="); + if (e == NULL) + throw ParserException(startLine, startColumn, "Unexpected character: " + String(c, 1)); + return Token(ConfigToken::Identifier, c, e, offset(c), startLine, startColumn); +--- common/src/IO/FgdParser.cpp.orig 2016-03-09 20:19:17 UTC ++++ common/src/IO/FgdParser.cpp +@@ -79,7 +79,7 @@ namespace TrenchBroom { + case '\t': + case '\n': + case '\r': +- discardWhile(Whitespace); ++ discardWhile(Whitespace()); + break; + default: { + const char* e = readInteger(WordDelims); +--- common/src/IO/StandardMapParser.cpp.orig 2016-03-09 20:19:17 UTC ++++ common/src/IO/StandardMapParser.cpp +@@ -25,7 +25,10 @@ + + namespace TrenchBroom { + namespace IO { +- const String QuakeMapTokenizer::NumberDelim = Whitespace + ")"; ++ const String& QuakeMapTokenizer::NumberDelim() { ++ static const String numberDelim(Whitespace() + ")"); ++ return numberDelim; ++ } + + QuakeMapTokenizer::QuakeMapTokenizer(const char* begin, const char* end) : + Tokenizer(begin, end), +@@ -88,18 +91,18 @@ namespace TrenchBroom { + case '\r': + case ' ': + case '\t': +- discardWhile(Whitespace); ++ discardWhile(Whitespace()); + break; + default: { // whitespace, integer, decimal or word +- const char* e = readInteger(NumberDelim); ++ const char* e = readInteger(NumberDelim()); + if (e != NULL) + return Token(QuakeMapToken::Integer, c, e, offset(c), startLine, startColumn); + +- e = readDecimal(NumberDelim); ++ e = readDecimal(NumberDelim()); + if (e != NULL) + return Token(QuakeMapToken::Decimal, c, e, offset(c), startLine, startColumn); + +- e = readString(Whitespace); ++ e = readString(Whitespace()); + if (e == NULL) + throw ParserException(startLine, startColumn, "Unexpected character: " + String(c, 1)); + return Token(QuakeMapToken::String, c, e, offset(c), startLine, startColumn); +@@ -356,7 +359,7 @@ namespace TrenchBroom { + } + + // texture names can contain braces etc, so we just read everything until the next opening bracket or number +- String textureName = m_tokenizer.readAnyString(QuakeMapTokenizer::Whitespace); ++ String textureName = m_tokenizer.readAnyString(QuakeMapTokenizer::Whitespace()); + if (textureName == Model::BrushFace::NoTextureName) + textureName = ""; + +--- common/src/IO/StandardMapParser.h.orig 2016-03-09 20:19:17 UTC ++++ common/src/IO/StandardMapParser.h +@@ -50,7 +50,7 @@ namespace TrenchBroom { + + class QuakeMapTokenizer : public Tokenizer { + private: +- static const String NumberDelim; ++ static const String& NumberDelim(); + bool m_skipEol; + public: + QuakeMapTokenizer(const char* begin, const char* end); +--- common/src/IO/Tokenizer.h.orig 2016-03-09 20:19:17 UTC ++++ common/src/IO/Tokenizer.h +@@ -54,7 +54,10 @@ namespace TrenchBroom { + + TokenStack m_tokenStack; + public: +- static const String Whitespace; ++ static const String& Whitespace() { ++ static const String whitespace(" \t\n\r"); ++ return whitespace; ++ } + public: + Tokenizer(const char* begin, const char* end) : + m_begin(begin), +@@ -205,7 +208,7 @@ namespace TrenchBroom { + } + + bool isWhitespace(const char c) const { +- return isAnyOf(c, Whitespace); ++ return isAnyOf(c, Whitespace()); + } + + const char* readInteger(const String& delims) { +@@ -297,9 +300,6 @@ namespace TrenchBroom { + + virtual Token emitToken() = 0; + }; +- +- template +- const String Tokenizer::Whitespace = " \t\n\r"; + } + } + #endif Added: head/games/trenchbroom/files/patch-shared_ptr ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/games/trenchbroom/files/patch-shared_ptr Fri Mar 25 06:47:15 2016 (r411820) @@ -0,0 +1,229 @@ +--- common/src/IO/GameConfigParser.cpp.orig 2016-03-09 20:19:17 UTC ++++ common/src/IO/GameConfigParser.cpp +@@ -36,7 +36,7 @@ namespace TrenchBroom { + using Model::GameConfig; + + const ConfigEntry::Ptr root = m_parser.parse(); +- if (root == NULL) ++ if (root.get() == NULL) + throw ParserException("Empty game config"); + + expectEntry(ConfigEntry::Type_Table, *root); +--- common/src/IO/GameFileSystem.cpp.orig 2016-03-09 20:19:17 UTC ++++ common/src/IO/GameFileSystem.cpp +@@ -44,7 +44,7 @@ namespace TrenchBroom { + Path::List::const_iterator it, end; + for (it = paks.begin(), end = paks.end(); it != end; ++it) { + MappedFile::Ptr file = diskFS->openFile(*it); +- assert(file != NULL); ++ assert(file.get() != NULL); + m_fileSystems.push_back(FSPtr(new PakFileSystem(path, file))); + } + } else { +@@ -95,7 +95,7 @@ namespace TrenchBroom { + const FSPtr fileSystem = *it; + if (fileSystem->fileExists(path)) { + const MappedFile::Ptr file = fileSystem->openFile(path); +- if (file != NULL) ++ if (file.get() != NULL) + return file; + } + } +--- common/src/IO/Wad.cpp.orig 2016-03-09 20:19:17 UTC ++++ common/src/IO/Wad.cpp +@@ -83,7 +83,7 @@ namespace TrenchBroom { + + Wad::Wad(const Path& path) : + m_file(Disk::openFile(path)) { +- if (m_file == NULL) ++ if (m_file.get() == NULL) + throw AssetException("Cannot open wad file " + path.asString()); + loadEntries(); + } +--- common/src/Model/BrushContentType.cpp.orig 2016-03-09 20:19:17 UTC ++++ common/src/Model/BrushContentType.cpp +@@ -32,7 +32,7 @@ namespace TrenchBroom { + m_transparent(transparent), + m_flagValue(flagValue), + m_evaluator(evaluator) { +- assert(m_evaluator != NULL); ++ assert(m_evaluator.get() != NULL); + } + + const String& BrushContentType::name() const { +--- common/src/Model/GameImpl.cpp.orig 2016-03-09 20:19:17 UTC ++++ common/src/Model/GameImpl.cpp +@@ -258,7 +258,7 @@ namespace TrenchBroom { + Assets::EntityModel* GameImpl::doLoadEntityModel(const IO::Path& path) const { + try { + const IO::MappedFile::Ptr file = m_fs.openFile(path); +- assert(file != NULL); ++ assert(file.get() != NULL); + + const String modelName = path.lastComponent().asString(); + const String extension = StringUtils::toLower(path.extension()); +--- common/src/Model/PickResult.cpp.orig 2016-03-09 20:19:17 UTC ++++ common/src/Model/PickResult.cpp +@@ -54,7 +54,7 @@ namespace TrenchBroom { + } + + void PickResult::addHit(const Hit& hit) { +- assert(m_compare != NULL); ++ assert(m_compare.get() != NULL); + Hit::List::iterator pos = std::upper_bound(m_hits.begin(), m_hits.end(), hit, CompareWrapper(m_compare.get())); + m_hits.insert(pos, hit); + } +--- common/src/Renderer/IndexArray.cpp.orig 2016-03-09 20:19:17 UTC ++++ common/src/Renderer/IndexArray.cpp +@@ -45,11 +45,11 @@ namespace TrenchBroom { + } + + size_t IndexArray::sizeInBytes() const { +- return m_holder == NULL ? 0 : m_holder->sizeInBytes(); ++ return m_holder.get() == NULL ? 0 : m_holder->sizeInBytes(); + } + + size_t IndexArray::indexCount() const { +- return m_holder == NULL ? 0 : m_holder->indexCount(); ++ return m_holder.get() == NULL ? 0 : m_holder->indexCount(); + } + + bool IndexArray::prepared() const { +--- common/src/Renderer/VertexArray.cpp.orig 2016-03-09 20:19:17 UTC ++++ common/src/Renderer/VertexArray.cpp +@@ -46,11 +46,11 @@ namespace TrenchBroom { + } + + size_t VertexArray::sizeInBytes() const { +- return m_holder == NULL ? 0 : m_holder->sizeInBytes(); ++ return m_holder.get() == NULL ? 0 : m_holder->sizeInBytes(); + } + + size_t VertexArray::vertexCount() const { +- return m_holder == NULL ? 0 : m_holder->vertexCount(); ++ return m_holder.get() == NULL ? 0 : m_holder->vertexCount(); + } + + bool VertexArray::prepared() const { +--- common/src/TrenchBroomApp.cpp.orig 2016-03-09 20:19:17 UTC ++++ common/src/TrenchBroomApp.cpp +@@ -165,7 +165,7 @@ namespace TrenchBroom { + + const Model::GameFactory& gameFactory = Model::GameFactory::instance(); + Model::GamePtr game = gameFactory.createGame(gameName); +- assert(game != NULL); ++ assert(game.get() != NULL); + + MapFrame* frame = m_frameManager->newFrame(); + frame->newDocument(game, mapFormat); +@@ -190,7 +190,7 @@ namespace TrenchBroom { + } + + Model::GamePtr game = gameFactory.createGame(gameName); +- assert(game != NULL); ++ assert(game.get() != NULL); + + frame = m_frameManager->newFrame(); + frame->openDocument(game, mapFormat, path); +--- common/src/View/ExecutableEvent.cpp.orig 2016-03-09 20:19:17 UTC ++++ common/src/View/ExecutableEvent.cpp +@@ -46,7 +46,7 @@ namespace TrenchBroom { + } + + void ExecutableEvent::execute() { +- if (m_executable != NULL) ++ if (m_executable.get() != NULL) + (*m_executable)(); + } + } +--- common/src/View/GLContextManager.cpp.orig 2016-03-09 20:19:17 UTC ++++ common/src/View/GLContextManager.cpp +@@ -42,7 +42,7 @@ namespace TrenchBroom { + + GLContext::Ptr GLContextManager::createContext(wxGLCanvas* canvas) { + GLContext::Ptr context(new GLContext(canvas, this)); +- if (m_mainContext == NULL) ++ if (m_mainContext.get() == NULL) + m_mainContext = context; + return context; + } +--- common/src/View/MapDocument.cpp.orig 2016-03-09 20:19:17 UTC ++++ common/src/View/MapDocument.cpp +@@ -154,7 +154,7 @@ namespace TrenchBroom { + } + + bool MapDocument::isGamePathPreference(const IO::Path& path) const { +- return m_game != NULL && m_game->isGamePathPreference(path); ++ return m_game.get() != NULL && m_game->isGamePathPreference(path); + } + + Model::Layer* MapDocument::currentLayer() const { +@@ -257,7 +257,7 @@ namespace TrenchBroom { + } + + void MapDocument::saveDocumentTo(const IO::Path& path) { +- assert(m_game != NULL); ++ assert(m_game.get() != NULL); + assert(m_world != NULL); + m_game->writeMap(m_world, path); + } +--- common/src/View/MapFrame.cpp.orig 2016-03-09 20:19:17 UTC ++++ common/src/View/MapFrame.cpp +@@ -86,7 +86,7 @@ namespace TrenchBroom { + + void MapFrame::Create(FrameManager* frameManager, MapDocumentSPtr document) { + assert(frameManager != NULL); +- assert(document != NULL); ++ assert(document.get() != NULL); + + m_frameManager = frameManager; + m_document = document; +--- common/src/View/SmartAttributeEditorManager.cpp.orig 2016-03-09 20:19:17 UTC ++++ common/src/View/SmartAttributeEditorManager.cpp +@@ -123,7 +123,7 @@ namespace TrenchBroom { + } + + void SmartAttributeEditorManager::deactivateEditor() { +- if (m_activeEditor != NULL) { ++ if (m_activeEditor.get() != NULL) { + m_activeEditor->deactivate(); + m_activeEditor = EditorPtr(); + m_name = ""; +@@ -131,7 +131,7 @@ namespace TrenchBroom { + } + + void SmartAttributeEditorManager::updateEditor() { +- if (m_activeEditor != NULL) { ++ if (m_activeEditor.get() != NULL) { + MapDocumentSPtr document = lock(m_document); + m_activeEditor->update(document->allSelectedAttributableNodes()); + } +--- common/src/View/ViewEditor.cpp.orig 2016-03-09 20:19:17 UTC ++++ common/src/View/ViewEditor.cpp +@@ -252,7 +252,7 @@ namespace TrenchBroom { + MapDocumentSPtr document = lock(m_document); + Model::GamePtr game = document->game(); + +- if (game != NULL) { ++ if (game.get() != NULL) { + Model::BrushContentType::FlagType hiddenFlags = 0; + const Model::BrushContentType::List& contentTypes = game->brushContentTypes(); + +@@ -452,7 +452,7 @@ namespace TrenchBroom { + + MapDocumentSPtr document = lock(m_document); + Model::GamePtr game = document->game(); +- if (game == NULL) { ++ if (game.get() == NULL) { + createEmptyBrushContentTypeFilter(parent); + } else { + const Model::BrushContentType::List& contentTypes = game->brushContentTypes(); +@@ -574,7 +574,7 @@ namespace TrenchBroom { + const Model::BrushContentType::FlagType hiddenFlags = editorContext.hiddenBrushContentTypes(); + + Model::GamePtr game = document->game(); +- if (game != NULL) { ++ if (game.get() != NULL) { + const Model::BrushContentType::List& contentTypes = game->brushContentTypes(); + for (size_t i = 0; i < contentTypes.size(); ++i) { + const Model::BrushContentType& contentType = contentTypes[i]; Added: head/games/trenchbroom/pkg-descr ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/games/trenchbroom/pkg-descr Fri Mar 25 06:47:15 2016 (r411820) @@ -0,0 +1,22 @@ +TrenchBroom is a modern, cross platform level editor for Quake-engine based +games. It currently supports Quake, Quake 2, and Hexen 2, is easy to use, +and provides many simple and advanced tools to make complex and interesting +levels with ease. Some of its features: + + - True 3D editing, no 2D views required + - High performance renderer with support for huge maps + - Vertex editing with edge and face splitting that will not create + invalid brushes + - Manipulation of multiple vertices at once (great for trisoup editing) + - Move, rotate, and flip brushes and entities + - Precise texture lock for all operations + - Smart entity property editors + - Graphical entity browser with drag and drop support + - Comprehensive texture application and manipulation tools + - Search and filter functions + - Unlimited undo and redo + - Point file support + - Support for FGD and DEF entity definition files, mods, and multiple + WAD files + +WWW: http://kristianduske.com/trenchbroom/ Added: head/games/trenchbroom/pkg-plist ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/games/trenchbroom/pkg-plist Fri Mar 25 06:47:15 2016 (r411820) @@ -0,0 +1,95 @@ +bin/TrenchBroom +%%DATADIR%%/fonts/SIL Open Font License.txt +%%DATADIR%%/fonts/SourceSansPro-Regular.otf +%%DATADIR%%/games/Halflife/HalfLife.fgd +%%DATADIR%%/games/Hexen2.cfg +%%DATADIR%%/games/Hexen2/Hexen2.fgd +%%DATADIR%%/games/Hexen2/Icon.png +%%DATADIR%%/games/Hexen2/palette.lmp +%%DATADIR%%/games/Quake.cfg +%%DATADIR%%/games/Quake/Icon.png +%%DATADIR%%/games/Quake/palette.lmp +%%DATADIR%%/games/Quake/Quake.fgd +%%DATADIR%%/games/Quake/Quoth2.fgd +%%DATADIR%%/games/Quake/Rubicon2.def +%%DATADIR%%/games/Quake2.cfg +%%DATADIR%%/games/Quake2/colormap.pcx +%%DATADIR%%/games/Quake2/Icon.png +%%DATADIR%%/games/Quake2/Quake2.fgd +%%DATADIR%%/games/Quake3/Icon.png +%%DATADIR%%/games/Quake4/Icon.png +%%DATADIR%%/images/Add.png +%%DATADIR%%/images/AppIcon.png +%%DATADIR%%/images/BrushTool.png +%%DATADIR%%/images/ClipTool.png +%%DATADIR%%/images/Console.png +%%DATADIR%%/images/ConsolePressed.png +%%DATADIR%%/images/DefaultGameIcon.png +%%DATADIR%%/images/DocIcon.png +%%DATADIR%%/images/Down.png +%%DATADIR%%/images/DuplicateObjects.png +%%DATADIR%%/images/EditMods.png +%%DATADIR%%/images/FlipHorizontally.png +%%DATADIR%%/images/FlipTextureH.png +%%DATADIR%%/images/FlipTextureV.png +%%DATADIR%%/images/FlipVertically.png +%%DATADIR%%/images/GeneralPreferences.png +%%DATADIR%%/images/Grid.png +%%DATADIR%%/images/Invisible_White.png +%%DATADIR%%/images/Invisible.png +%%DATADIR%%/images/IssueBrowser.png +%%DATADIR%%/images/IssueBrowserPressed.png +%%DATADIR%%/images/KeyboardPreferences.png +%%DATADIR%%/images/Locked.png +%%DATADIR%%/images/MousePreferences.png +%%DATADIR%%/images/NoTool.png +%%DATADIR%%/images/Position.png +%%DATADIR%%/images/Refresh.png +%%DATADIR%%/images/Remove.png +%%DATADIR%%/images/ResetTexture.png +%%DATADIR%%/images/RotateTextureCCW.png +%%DATADIR%%/images/RotateTextureCW.png +%%DATADIR%%/images/RotateTool.png +%%DATADIR%%/images/TextureLockOff.png +%%DATADIR%%/images/TextureLockOn.png +%%DATADIR%%/images/Unlocked.png +%%DATADIR%%/images/Up.png +%%DATADIR%%/images/VertexTool.png +%%DATADIR%%/images/Visible_White.png +%%DATADIR%%/images/Visible.png +%%DATADIR%%/shader/BrowserGroup.fragsh +%%DATADIR%%/shader/BrowserGroup.vertsh +%%DATADIR%%/shader/ClipHandle.vertsh +%%DATADIR%%/shader/ColoredHandle.vertsh +%%DATADIR%%/shader/ColoredText.vertsh +%%DATADIR%%/shader/Compass.fragsh +%%DATADIR%%/shader/Compass.vertsh +%%DATADIR%%/shader/CompassOutline.vertsh +%%DATADIR%%/shader/EntityLink.fragsh +%%DATADIR%%/shader/EntityLink.vertsh +%%DATADIR%%/shader/EntityModel.fragsh +%%DATADIR%%/shader/EntityModel.vertsh +%%DATADIR%%/shader/Face.fragsh +%%DATADIR%%/shader/Face.vertsh +%%DATADIR%%/shader/Grid.fragsh +%%DATADIR%%/shader/Grid2D.fragsh +%%DATADIR%%/shader/Grid2D.vertsh +%%DATADIR%%/shader/Handle.fragsh +%%DATADIR%%/shader/Handle.vertsh +%%DATADIR%%/shader/MiniMapEdge.fragsh +%%DATADIR%%/shader/MiniMapEdge.vertsh +%%DATADIR%%/shader/Text.fragsh +%%DATADIR%%/shader/Text.vertsh +%%DATADIR%%/shader/TextBackground.fragsh +%%DATADIR%%/shader/TextBackground.vertsh +%%DATADIR%%/shader/TextureBrowser.fragsh +%%DATADIR%%/shader/TextureBrowser.vertsh +%%DATADIR%%/shader/TextureBrowserBorder.fragsh +%%DATADIR%%/shader/TextureBrowserBorder.vertsh +%%DATADIR%%/shader/Triangle.fragsh +%%DATADIR%%/shader/Triangle.vertsh +%%DATADIR%%/shader/UVView.fragsh +%%DATADIR%%/shader/UVView.vertsh +%%DATADIR%%/shader/VaryingPC.fragsh +%%DATADIR%%/shader/VaryingPC.vertsh +%%DATADIR%%/shader/VaryingPUniformC.vertsh