diff --git a/dev-games/trenchbroom/additional-files/TrenchBroom-2025.1.rdef.in b/dev-games/trenchbroom/additional-files/TrenchBroom-2025.1.rdef.in new file mode 100644 index 000000000..22c00c28f --- /dev/null +++ b/dev-games/trenchbroom/additional-files/TrenchBroom-2025.1.rdef.in @@ -0,0 +1,155 @@ +resource app_signature "@APP_SIGNATURE@"; + +resource app_flags B_SINGLE_LAUNCH; + +resource app_version { + major = @MAJOR@, + middle = @MIDDLE@, + minor = @MINOR@, + variety = B_APPV_DEVELOPMENT, + internal = 0, + short_info = "TrenchBroom", + long_info = "@LONG_INFO@" +}; + +resource vector_icon { + $"6E636966090400A803FFCC00050002000602BA8EBEBABE203ABE20BA8EBE4978" + $"6349A5ED00B49000FFFFD20103FFE680051A020006023D2E130000000000003D" + $"2E1349670C4A8FA800FFE894FFFFD42A020006023924293A1594BA1594392429" + $"4A1DE64AB1DA005E4C00FF9C7E0003C8A100190207C11EBEADC11EBEADBE29C1" + $"3CB83DC65ABB33C3CBBAC2C7A8BFCBCA44BD46C8F6BFCBCB01BFCBCC7ABFCBCB" + $"BDC137CC7AC410CC7AC2A3CC7AC6CEC98ECC4AC3B6C98CC6A2C891C208C11EBE" + $"ADC4D8C05BC11EBEAD0207BCB0B3CFBCB0B3CFB9B2B5CEB3B8B9CBB6B5B7CCB3" + $"B8BDBCB3B8C5A0B3B8C1AEB7B3C79FBFA9CB9DBBAEC99EC26EC8EEC7F8C391C5" + $"33C640C7F8BF9FC7F8B7BCC7F8BBAEC435B66DBCB0B3CFC073B51EBCB0B3CF02" + $"07BCBDB424BCBDB424C061B568C7A8B7F1C404B6ADC7A8BBC5C7A8C36DC7A8BF" + $"99C4F9C606BF9ACB3AC249C8A0BBBEC94BB408C56CB7E3C75CB408C199B408B9" + $"F3B408BDC6B6EFB803BCBDB424B9D6B614BCBDB4240207BC9720BC9720B965B5" + $"2220B966B632B74420BD9E20C61020C1D7B743C833BFCBCC7ABB87CA57C2C2C9" + $"9BC8B0C3DDC5B9C6BCC8B0BFA5C8B0B735C8B0BB6DC4A8B5CEBC9720C0A0B467" + $"BC97200205B3B6B9C9B3B6B9C9B7B2BB61BFAABE91BBAEBCF9BFAAC2EBBFAACB" + $"9FBFAAC745BBAEC9A0B3B6C5A0B7B2C7A0B3B6C1AEB3B6B9C9B3B6BDBBB3B6B9" + $"C90205B497BC1AB497BC1AB7F1BD80BEA4C04ABB4ABEE5BEA4C267BEA4C6A2BE" + $"A4C484BB4AC512B497C1F2B7F1C382B497BFFFB497BC1AB497BE0DB497BC1A02" + $"0DB949C11BB949C11BB948C11BB94EC121B94BC11DB951C125B956C131B954C1" + $"2BB95BC13CB95FC150B95FC14AB95FC15EB95FC17030C16CB95EC172B95DC172" + $"B95EC172B95BC172B94FC16FB956C172B940C168B939C15AB93BC162B937C152" + $"B938C139B938C147B938C134B941C123B93CC12AB943C120B948C11CB946C11D" + $"B949C11BB949C11BB94AC11BB949C11BB949C11BB949C11BB949C11B020CB98A" + $"C0FCB98AC0FCB993C0FCB9ADC105B99EC0FFB9D3C115B9F2C15FB9F2C140B9F2" + $"C16FB9E0C17FB9EBC17AB9D5C184B9B4C17931C184B9B1C178B9A4C16BB9ABC1" + $"72B99EC164B98FC151B996C15BB982C13DB976C116B976C125B976C10EB97AC1" + $"05B978C109B97CC101B983C0FDB97FC0FFB985C0FDB98AC0FCB987C0FCB98AC0" + $"FCB98AC0FCB98AC0FCB98AC0FC020BB8CCC0A7B8CCC0A7B8D4C0A7B8E6C0ADB8" + $"DCC0A9B90CC0BEB921C0F7B921C0D7B921C106B90BC118B917C111B904C11BB8" + $"F8C11FB8FEC11EB8F2C121B8EAC120B8ECC121B8D9C11BB8BCC0FCB8C8C10DB8" + $"AFC0EBB8A8C0C7B8A8C0D7B8A8C0B8B8B9C0AAB8AEC0AEB8BEC0A7B8CCC0A7B8" + $"C4C0A6B8CCC0A7B8CCC0A7B8CCC0A7B8CCC0A7021EBDA6C09BBDA6C09BBCC0C0" + $"B1BAF5C0DDBBDBC0C7BACCC0E0BA79C0E8BAA2C0E4BA7AC0EBBA7DC0F1BA7CC0" + $"EEBA7DC0F1BA9FC13EBA8EC114BAAFC169BAC0C1BABAC0C19CBABBC211BA76C2" + $"59BA98C23FBA54C273BA33C278BA33C278BA31C278BA2DC279BA2FC27932C2A2" + $"BA2BC2F5BA2BC2CBBA2DC2F5BA32C2F5BA2FC2F5BA32C2F5BA82C2EBBA57C2F5" + $"BA93C313BAB4C363BAA3C33BBAA3C374BA82C39533C384BADBC3CCBB8FC438BB" + $"35C402BB51C3BFBAD7C2CCBB14C345BAE0C2C7BAF1C2BABAE9C2C1BB3EC304BB" + $"D7C398BB8AC34EBBE3C3C5BBFBC421BBEFC3F3BC61C403BD2BC3C7BCC6C3E5BC" + $"84C353BB36C26CBBDDC2DFBB40C25ABB4DC231BB47C247BBB3C25ABC7FC2ACBC" + $"19C283BCA9C2EABCFDC367BCD3C329BD3EC321BDC0C296BD7FC2DBBCF0C24EBB" + $"50C1C0BC20C207BB4AC1A6BB37C16EBB41C18ABBBCC16CBCC5C169BC40C16BBC" + $"D8C199BCFDC1F9BCEAC1C9BD35C184BDA6C09BBD6DC110BDA6C09B022CB8DDBF" + $"C1B8DDBFC1B8C7BFC2B8A3BFD8B8B2BFC8B889BFF4B87FC048B882C021B87EC0" + $"5CB87CC07DB87EC06FB87CC084B87AC08FB87BC08AB879C093B877C097B878C0" + $"96B866C0A9B850C100B850C0C8B850C110B866C12BB859C11EB873C138B895C1" + $"4FB884C144B8A6C15AB8C6C16CB8B8C163B8D4C175B8E0C180B8DEC17DB8E6C1" + $"8BB8E4C1ABB8E6C19BB8E3C1BCB8E6C1DBB8E0C1CDB8E9C1E3B8F9C1EDB8F0C1" + $"E8B902C1F3B918C1FCB90DC1F8B92EC205B94CC20FB944C20CB954C214B980C2" + $"2BB96AC221B98BC231B99FC238B996C235B9A4C239B9ACC23AB9A8C23AB9B0C2" + $"3AB9B8C235B9B5C23AB9BCC22FB9BCC21FB9BCC228B9BCC217B9BAC205B9BBC2" + $"0EB9B9C1FCB9B9C1ECB9B9C1F3B9BAC1E5B9BDC1E0B9BCC1E1B9BBC1E1B9C2C1" + $"E1B9BEC1E0B9C7C1E1B9D4C1E5B9CDC1E3B9E2C1E8BA05C1F3B9F4C1EEBA17C1" + $"F7BA37C1F9BA28C1FBBA3EC1F9BA4AC1F2BA45C1F7BA4FC1EDBA52C1DDBA52C1" + $"E6BA52C1A5BA2AC153BA3CC174BA27C14DBA24C131BA25C140BA23C121BA21C0" + $"F9BA22C10EBA1EC0CFB9FEC06BBA17C09CB9D1C016B957BFE3B970BFECB956BF" + $"E2B952BFE1B954BFE1B950BFE0B94CBFDEB94EBFDFB94CBFDEB94CBFDEB94CBF" + $"DEB94ABFDDB943BFDAB946BFDBB943BFDAB943BFD9B943BFDAB941BFD9B93EBF" + $"D8B940BFD8B92CBFD0B8F3BFC2B910BFC6B8ECBFC1B8DDBFC1B8E4BFC1B8DDBF" + $"C1B8DDBFC1B8DDBFC1B8DDBFC1021DB538BD06B538BD06B56BBDA2B5D0BEDAB5" + $"9DBE3EB5E0BEBCB602BE7FB5F1BE9DB67CBEEEB772BFCBB6F7BF5CB769BFDCB7" + $"5CC0022BBFEFB69EBF9BB521BECEB5DFBF35B55BBF45B5CFC032B595BFBBB5F4" + $"C01AB640BFE8B61AC001B69EC016B75AC0712AC044B75F42B770C0BFB767C0A5" + $"B6D7C0A2B5A6C068B63EC085B602C0DAB6B945B65DC14CB6C5C19BB6DCC154B6" + $"D0C177B722C14FB7AEC144B768C149B7B8C154B7CCC173B7C2C164B794C1B2B7" + $"23C230B75BC1F1B777C24AB820C27EB7CCC264B810C25CB7EEC21AB7FFC23BB7" + $"FDC203B81AC1D6B80BC1EDB843C204B866C225B866C225B86AC228B872C22FB8" + $"6EC22CB871C204B86FC1ADB870C1D9B86FC1ADB86DC1ABB86EC1ACB86DC1ABB7" + $"E2C070B7EBC121B7E2C053B802C015B7F2C030B812BFFAB821BFE6B821BFE6B8" + $"23BFE5B825BFE1B824BFE3B800BFBCB7B4BF73B7DABF97B6E0BEA4B538BD06B6" + $"0CBDD5B538BD060205B466C40DB466C40DB5EAC4CAB8F3C644B76FC587B8F3C6" + $"A7B8F3C76BB8F3C709B76FC6ABB466C529B5EAC5EAB466C4CAB466C40DB466C4" + $"6BB466C40D020531C69831C698BB71C767BEC7C907BD1CC837BEC7C96EBEC7CA" + $"3DBEC7C9D6BD1CC96931C7C1BB71C89531C75E31C69831C6FB31C6980005B3B5" + $"B9CBB3B5B9CBB7B1BB63BFA9BE93BBADBCFBC26FBC4BC7FBB7BCC535BA04C437" + $"B66CBCB0B3CEC073B51DB9B1B5CDB3B5B9CBB6B3B7CCB3B5B9CB0205C7F9B7BA" + $"C7F9B7BAC533BA01BFA8BE91C26EBC49BFA8C2EBBFA8CB9FBFA8C745C26EC8F0" + $"C7F9C391C533C641C7F9BF9FC7F9B7BAC7F9BBACC7F9B7BA0205C75DBA32C75D" + $"BA32C508BC2BC05EC01DC2B3BE24C05EC23AC05EC675C05EC458C2B3C451C75D" + $"C009C508C22DC75DBE17C75DBA32C75DBC24C75DBA32020BC41AC004C41AC004" + $"C41AC005C41CC007C41BC005C41FC00D4BC01C4BC0164BC029C421C03DC423C0" + $"34C420C046C412C057C41CC04EC40DC05BC40BC05BC40CC05BC40AC056C40BC0" + $"3CC40BC04AC40BC036C411C01AC40EC027C413C013C417C009C415C00DC418C0" + $"06C41AC004C419C005C41AC004C41AC004C41AC004C41AC0040220C348C003C3" + $"48C003C329C006C2EDC00DC30BC00AC24DC01FC10EC043C1AEC031C136C0B0C1" + $"85C18AC15EC11DC193C154C1AEC0E9C1A0C11EC209C0D4C2BEC0ABC263C0C0C2" + $"B7C0C8C2ADC100C2B1C0E5C21CC16BC0FBC241C18CC1D6C12AC27DC186C2F444" + $"C2B8C1A4C2ADC1DFC220C1C2C266C225C1E6C2B0C173C26BC1ADC2B4C186C2BF" + $"C1A7C2B9C198C24BC238C163C359C1D7C2C8C1ABC365C23AC37FC1F2C372C243" + $"C34FC254C2EFC24BC31FC289C298C2F3C1ECC2BEC242C2F8C1EFC302C1F6C2FC" + $"C1F3C2D6C27DC27FC38BC2AAC304C2BFC343C340C2B3C300C2FBC335C2A5C31E" + $"C289C329C297C32AC25EC341C208C335C233C35EC209C378C203C378C203C37A" + $"C203C37DC202C37CC202C37DC1D9C37CC187C37CC1B0C379C187C374C188C377" + $"C187C374C188C349C175C35FC189C332C162C316C0E3C319C139C316C0E3C316" + $"C0E3C316C0E3C316C0E3C316C0E3C316C0E3C316C0C4C32DC060C321C08EC339" + $"C033C344C00DC344C00DC345C00AC348C003C346C006C348C003020DC3F0BFEE" + $"C3F0BFEEC3F2BFEEC3F4BFF2C3F3BFEFC3F5BFF6C3F6C004C3F6BFFCC3F6C013" + $"C3E5C044C3EEC02DC3E0C04FC3D6C062C3DBC05AC3D2C06BC3CBC073C3CDC071" + $"C3C5C07AC3BAC080C3BFC07EC3B6C082C3B0C080C3B3C081C3ABC07EC3A5C064" + $"C3A5C074C3A5C043C3D5BFFC4AC013C3DCBFF6C3E7BFF0C3E2BFF2C3EBBFEEC3" + $"F0BFEEC3EFBFEDC3F0BFEEC3F0BFEEC3F0BFEEC3F0BFEE020AC477BF77C477BF" + $"77C479BF76C47CBF77C47BBF77C481BF79C486BF91C486BF81C486BFA1C478BF" + $"CAC481BFB7C46FBFDEC458BFF7C463BFEFC456BFF8C445BFF5C44DBFF9C43DBF" + $"F0C436BFD8C436BFE8C436BFB7C460BF82C446BF9AC46ABF7AC477BF77C472BF" + $"77C477BF77C477BF77C477BF77C477BF77022CC472BE94C472BE94C467BE94C4" + $"52BE9BC45CBE96C43DBEA3C41DBEBDC42ABEB3C41DBEBDC41DBEBDC41DBEBDC4" + $"1CBEBEC41ABEBFC41BBEBFC41ABEC0C41ABEC0C41ABEC0C418BEC2C413BEC6C4" + $"15BEC4C412BEC7C410BECAC411BEC8C40DBECBC409BECFC40BBECDC409BECFC4" + $"09BED0C409BECFC3F5BEDFC398BF71C3B6BF18C387BFA5C380C004C382BFD9C3" + $"7EC02FC379C060C37EC051C36DC085C35EC0F1C35EC0B9C35EC0F9C364C104C3" + $"5FC0FFC368C108C374C109C36FC10AC380C108C398C0F9C38BC101C3A443C3BA" + $"C0E3C3B1C0E9C3BFC0DFC3C6C0DCC3C4C0DDC3C6C0DCC3C6C0DCC3C6C0DCC3C7" + $"C0DDC3C8C0E5C3C8C0DFC3C8C0ECC3C7C0FEC3C8C0F5C3C7C107C3C6C119C3C6" + $"C111C3C6C121C3C9C12DC3C5C127C3CAC130C3CFC132C3CDC132C3D2C133C3D5" + $"C132C3D3C132C3D9C131C3DFC12DC3DCC12FC3E5C129C3F5C11BC3EDC122C404" + $"C10DC419C0F6C413C0FCC41F43C43DC0DAC42EC0E7C445C0D3C453C0C6C44CC0" + $"CDC459C0BFC460C0B1C45EC0B8C464C0A3C461C082C462C093C460C072C464C0" + $"55C45FC061C466C050C477C03CC46DC047C480C030C498C016C48CC024C4B0BF" + $"FAC4C8BFBDC4C8BFDCC4C8BF86C4ACBF5BC4B8BF6BC4ACBF5BC4AABF54C4ABBF" + $"58C4AABF4FC4A9BF42C4A9BF49C4A8BF34C4A7BF0EC4A8BF21C4A5BEE7C48EBE" + $"A4C4A1BEBCC486BE9AC472BE94C47CBE95C472BE94C472BE94C472BE94C472BE" + $"94021DC6F1BB2DC6F1BB2DC65CBC25C530BE14C5C6BD1CC516BE3FC4E1BE95C4" + $"FCBE6AC4E2BE96C4E4BE99C4E3BE97C4E4BE99C510BF18C510BEDCC510BF18C5" + $"10BF18C510BF18C50ABFCCC4AFC06DC4AFC06DC4AEC06DC4AEC06EC4AEC06EC4" + $"ADC09CC4ACC0F8C4ACC0CAC4B0C0F1C4B9C0E4C4B5C0EAC4B9C0E4C4EC42C4D1" + $"C0BDC4F5C09FC508C0C4C4FEC0B1C4FCC0EAC4E3C135C4EFC10FC520C10BC598" + $"C0B8C55CC0E2C571C083C523C019C54AC04EC52BC008C539BFE3C532BFF6C568" + $"BFDDC5C7BFD0C598BFD7C5CFBFF3C5E1C039C5D8C016C622BFB5C6A4BEABC663" + $"BF30C63ABEE3C565BF51C5CFBF1AC56ABF37C573BF02C570BF1DC5B4BEC5C636" + $"BE4AC5F5BE88C651BE5C51BE81C66BBE6FC6AFBDFEC70139C6D8BD7AC67CBD7F" + $"C570BE91C5F6BE08C56CBE80C562BE62C568BE70C5B7BDDFC661BCD9C60C3AC6" + $"6CBCF5C684BD2EC678BD12C6A9BC83C6F1BB2DC6CDBBD8C6F1BB2D0205C79AC1" + $"EFC79AC1EFC68BC2EFC46FC4F0C57DC3F0C46FC552C46FC617C46FC5B5C57DC5" + $"13C79AC30BC68BC40FC79AC2ADC79AC1EFC79AC24EC79AC1EF0205C3C1C594C3" + $"C1C594C298C6ADC046C8E0C16FC7C7C046C947C046CA16C046C9AFC16FC8F8C3" + $"C1C6BDC298C7DBC3C1C65AC3C1C594C3C1C5F7C3C1C5940C0A000100000A0101" + $"01000A02020203000A030104000A040105000A0506060708090A0B000A05020C" + $"0D000A06010E000A07010F000A080110000A0506111213141516000A05021718" + $"00" +}; diff --git a/dev-games/trenchbroom/patches/trenchbroom-2025.1.patchset b/dev-games/trenchbroom/patches/trenchbroom-2025.1.patchset new file mode 100644 index 000000000..eea48cd5c --- /dev/null +++ b/dev-games/trenchbroom/patches/trenchbroom-2025.1.patchset @@ -0,0 +1,337 @@ +From a5f2a226107dca45c83531fa3c3bd9dfce6322b7 Mon Sep 17 00:00:00 2001 +From: erysdren +Date: Mon, 17 Feb 2025 01:57:41 -0600 +Subject: fix for haiku + + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 81b4e73a1..6841d6085 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -16,9 +16,6 @@ if(POLICY CMP0063) + cmake_policy(SET CMP0063 NEW) + endif() + +-set(CMAKE_TOOLCHAIN_FILE "${CMAKE_SOURCE_DIR}/vcpkg/scripts/buildsystems/vcpkg.cmake") +-set(VCPKG_OVERLAY_PORTS "${CMAKE_SOURCE_DIR}/vcpkg-overlay-ports/freeimage;${CMAKE_SOURCE_DIR}/vcpkg-overlay-ports/openexr") +- + set(CMAKE_C_VISIBILITY_PRESET hidden) + set(CMAKE_CXX_VISIBILITY_PRESET hidden) + set(CMAKE_VISIBILITY_INLINES_HIDDEN TRUE) +@@ -87,24 +84,6 @@ endif() + + include(cmake/Utils.cmake) + +-# Find Git +-find_package(Git) +- +-if(NOT GIT_FOUND) +- message(FATAL_ERROR "Could not find git") +-endif() +- +-# Find Pandoc +-if(NOT PANDOC_PATH) +- find_program(PANDOC_PATH NAMES "pandoc" DOC "Pandoc program location") +- +- if(PANDOC_PATH STREQUAL "PANDOC_PATH-NOTFOUND") +- message(FATAL_ERROR "Could not find pandoc") +- else() +- message(STATUS "Found Pandoc: ${PANDOC_PATH}") +- endif() +-endif() +- + # Prevent overriding the parent project's compiler/linker + # settings on Windows + set(gtest_force_shared_crt ON CACHE BOOL "" FORCE) +@@ -118,7 +97,7 @@ find_package(freetype CONFIG REQUIRED) + find_package(Catch2 CONFIG REQUIRED) + find_package(fmt CONFIG REQUIRED) + find_package(GLEW REQUIRED) +-find_package(miniz CONFIG REQUIRED) ++# find_package(miniz CONFIG REQUIRED) + find_package(tinyxml2 CONFIG REQUIRED) + + # Find Qt and OpenGL +@@ -130,8 +109,8 @@ find_package(Qt6 COMPONENTS Core Widgets OpenGL OpenGLWidgets Svg Test REQUIRED) + find_package(Threads) + + # Populate version variables using git +-get_git_describe("${GIT_EXECUTABLE}" "${CMAKE_SOURCE_DIR}" GIT_DESCRIBE) +-get_app_version(GIT_DESCRIBE APP_VERSION_YEAR APP_VERSION_NUMBER) ++# get_git_describe("${GIT_EXECUTABLE}" "${CMAKE_SOURCE_DIR}" GIT_DESCRIBE) ++# get_app_version(GIT_DESCRIBE APP_VERSION_YEAR APP_VERSION_NUMBER) + set(APP_BUILD_TYPE "${CMAKE_BUILD_TYPE}") + + # Some global variables used in several targets +diff --git a/app/CMakeLists.txt b/app/CMakeLists.txt +index 26c6e0b4d..6c58a8922 100644 +--- a/app/CMakeLists.txt ++++ b/app/CMakeLists.txt +@@ -1,4 +1,4 @@ +-include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/GenerateManual.cmake) ++# include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/GenerateManual.cmake) + + set(APP_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/src") + set(APP_RESOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/resources") +@@ -113,7 +113,7 @@ target_link_libraries(TrenchBroom common) # common already comes with all its de + # Xcode "new build system" does't allow custom commands to be depended on by two unrelated targets + # In this case, ${INDEX_OUTPUT_PATH} is depended on by TrenchBroom and GenerateManual + # so we must make TrenchBroom depend on GenerateManual (see #3608) +-add_dependencies(TrenchBroom GenerateManual) ++# add_dependencies(TrenchBroom GenerateManual) + set_compiler_config(TrenchBroom) + + set_target_properties(TrenchBroom PROPERTIES AUTORCC TRUE) +@@ -216,7 +216,7 @@ endif() + # Set up the resources and DLLs for the executable + set(APP_RESOURCE_DEST_DIR "$") + +-if(WIN32 OR ${CMAKE_SYSTEM_NAME} MATCHES "Linux|FreeBSD") ++if(WIN32 OR ${CMAKE_SYSTEM_NAME} MATCHES "Linux|FreeBSD|Haiku") + # Copy button images to resources directory + add_custom_command(TARGET TrenchBroom POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy_directory "${APP_RESOURCE_DIR}/graphics/images" "${APP_RESOURCE_DEST_DIR}/images") +@@ -248,22 +248,24 @@ if(WIN32 OR ${CMAKE_SYSTEM_NAME} MATCHES "Linux|FreeBSD") + COMMAND ${CMAKE_COMMAND} -E make_directory "${APP_RESOURCE_DEST_DIR}/stylesheets/" + COMMAND ${CMAKE_COMMAND} -E copy_directory "${APP_RESOURCE_DIR}/stylesheets" "${APP_RESOURCE_DEST_DIR}/stylesheets") + +- # Copy manual files to resource directory +- add_custom_command(TARGET TrenchBroom POST_BUILD +- COMMAND ${CMAKE_COMMAND} -E make_directory "${APP_RESOURCE_DEST_DIR}/manual/" +- COMMAND ${CMAKE_COMMAND} -E make_directory "${APP_RESOURCE_DEST_DIR}/manual/images" +- COMMAND ${CMAKE_COMMAND} -E copy "${INDEX_OUTPUT_PATH}" "${APP_RESOURCE_DEST_DIR}/manual/" +- COMMAND ${CMAKE_COMMAND} -E copy "${DOC_MANUAL_SHORTCUTS_JS_TARGET_ABSOLUTE}" "${APP_RESOURCE_DEST_DIR}/manual/") +- +- foreach(MANUAL_FILE ${DOC_MANUAL_TARGET_FILES_ABSOLUTE}) ++ if(NOT ${CMAKE_SYSTEM_NAME} MATCHES "Haiku") ++ # Copy manual files to resource directory + add_custom_command(TARGET TrenchBroom POST_BUILD +- COMMAND ${CMAKE_COMMAND} -E copy ${MANUAL_FILE} "${APP_RESOURCE_DEST_DIR}/manual/") +- endforeach(MANUAL_FILE) ++ COMMAND ${CMAKE_COMMAND} -E make_directory "${APP_RESOURCE_DEST_DIR}/manual/" ++ COMMAND ${CMAKE_COMMAND} -E make_directory "${APP_RESOURCE_DEST_DIR}/manual/images" ++ COMMAND ${CMAKE_COMMAND} -E copy "${INDEX_OUTPUT_PATH}" "${APP_RESOURCE_DEST_DIR}/manual/" ++ COMMAND ${CMAKE_COMMAND} -E copy "${DOC_MANUAL_SHORTCUTS_JS_TARGET_ABSOLUTE}" "${APP_RESOURCE_DEST_DIR}/manual/") + +- foreach(MANUAL_IMAGE_FILE ${DOC_MANUAL_TARGET_IMAGE_FILES_ABSOLUTE}) +- add_custom_command(TARGET TrenchBroom POST_BUILD +- COMMAND ${CMAKE_COMMAND} -E copy ${MANUAL_IMAGE_FILE} "${APP_RESOURCE_DEST_DIR}/manual/images/") +- endforeach(MANUAL_IMAGE_FILE) ++ foreach(MANUAL_FILE ${DOC_MANUAL_TARGET_FILES_ABSOLUTE}) ++ add_custom_command(TARGET TrenchBroom POST_BUILD ++ COMMAND ${CMAKE_COMMAND} -E copy ${MANUAL_FILE} "${APP_RESOURCE_DEST_DIR}/manual/") ++ endforeach(MANUAL_FILE) ++ ++ foreach(MANUAL_IMAGE_FILE ${DOC_MANUAL_TARGET_IMAGE_FILES_ABSOLUTE}) ++ add_custom_command(TARGET TrenchBroom POST_BUILD ++ COMMAND ${CMAKE_COMMAND} -E copy ${MANUAL_IMAGE_FILE} "${APP_RESOURCE_DEST_DIR}/manual/images/") ++ endforeach(MANUAL_IMAGE_FILE) ++ endif() + endif() + + # Common CPack configuration +diff --git a/cmake/Utils.cmake b/cmake/Utils.cmake +index 33233de95..450a0112e 100644 +--- a/cmake/Utils.cmake ++++ b/cmake/Utils.cmake +@@ -227,11 +227,14 @@ macro(GET_GIT_DESCRIBE GIT SOURCE_DIR GIT_DESCRIBE) + endif() + endmacro(GET_GIT_DESCRIBE) + ++ + macro(GET_BUILD_PLATFORM PLATFORM_NAME) + if(WIN32) + set(${PLATFORM_NAME} "Win64") + elseif(APPLE) + set(${PLATFORM_NAME} "macOS") ++ elseif(HAIKU) ++ set(${PLATFORM_NAME} "Haiku") + elseif(UNIX) + set(${PLATFORM_NAME} "Linux") + else() +diff --git a/cmake/packages/freeimage-config.cmake b/cmake/packages/freeimage-config.cmake +index 027013f14..1080629c0 100644 +--- a/cmake/packages/freeimage-config.cmake ++++ b/cmake/packages/freeimage-config.cmake +@@ -13,7 +13,9 @@ find_path(freeimage_INCLUDE_DIR + /usr/include + /usr/local/include + /sw/include +- /opt/local/include) ++ /opt/local/include ++ /boot/system/develop/headers ++ /boot/system/develop/headers/x86) + find_library(freeimage_LIBRARY + NAMES FreeImage freeimage + PATHS +@@ -22,7 +24,9 @@ find_library(freeimage_LIBRARY + /usr/local/lib64 + /usr/local/lib + /sw/lib +- /opt/local/lib) ++ /opt/local/lib ++ /boot/system/lib ++ /boot/system/lib/x86) + + include(FindPackageHandleStandardArgs) + find_package_handle_standard_args(freeimage +diff --git a/cmake/packages/freetype-config.cmake b/cmake/packages/freetype-config.cmake +index ccacae6c9..2d7b9fd31 100644 +--- a/cmake/packages/freetype-config.cmake ++++ b/cmake/packages/freetype-config.cmake +@@ -14,7 +14,9 @@ find_path(freetype_INCLUDE_DIR + /usr/include/freetype2 + /usr/local/include + /sw/include +- /opt/local/include) ++ /opt/local/include ++ /boot/system/develop/headers/freetype2 ++ /boot/system/develop/headers/x86/freetype2) + find_library(freetype_LIBRARY + NAMES FreeType freetype + PATHS +@@ -23,7 +25,9 @@ find_library(freetype_LIBRARY + /usr/local/lib64 + /usr/local/lib + /sw/lib +- /opt/local/lib) ++ /opt/local/lib ++ /boot/system/lib ++ /boot/system/lib/x86) + + include(FindPackageHandleStandardArgs) + find_package_handle_standard_args(freetype +diff --git a/cmake/packages/tinyxml2-config.cmake b/cmake/packages/tinyxml2-config.cmake +index c529fd484..205fa5d83 100644 +--- a/cmake/packages/tinyxml2-config.cmake ++++ b/cmake/packages/tinyxml2-config.cmake +@@ -13,7 +13,9 @@ find_path(tinyxml2_INCLUDE_DIR + /usr/include + /usr/local/include + /sw/include +- /opt/local/include) ++ /opt/local/include ++ /boot/system/develop/headers ++ /boot/system/develop/headers/x86) + find_library(tinyxml2_LIBRARY + NAMES tinyxml2 + PATHS +@@ -22,7 +24,9 @@ find_library(tinyxml2_LIBRARY + /usr/local/lib64 + /usr/local/lib + /sw/lib +- /opt/local/lib) ++ /opt/local/lib ++ /boot/system/lib ++ /boot/system/lib/x86) + + include(FindPackageHandleStandardArgs) + find_package_handle_standard_args(tinyxml2 +diff --git a/common/CMakeLists.txt b/common/CMakeLists.txt +index 2fec2697c..e9d7e8b37 100644 +--- a/common/CMakeLists.txt ++++ b/common/CMakeLists.txt +@@ -1034,7 +1034,7 @@ set(COMMON_HEADER + add_library(common OBJECT ${COMMON_SOURCE} ${COMMON_HEADER}) + set_target_properties(common PROPERTIES AUTOMOC TRUE) + target_include_directories(common PUBLIC ${COMMON_SOURCE_DIR}) +-target_link_libraries(common PUBLIC tinyxml2::tinyxml2 kdl vm GLEW::GLEW miniz::miniz freeimage::FreeImage freetype OpenGL::GL Qt6::Widgets Qt6::OpenGL Qt6::OpenGLWidgets Qt6::Svg fmt::fmt assimp::assimp) ++target_link_libraries(common PUBLIC tinyxml2::tinyxml2 kdl vm GLEW::GLEW miniz::miniz freeimage::FreeImage freetype OpenGL::GL Qt6::Widgets Qt6::OpenGL Qt6::OpenGLWidgets Qt6::Svg fmt::fmt assimp::assimp execinfo) + + # use precompiled headers on CMake 3.16 or later + if (TB_ENABLE_PCH AND ${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.16.0") +@@ -1114,7 +1114,9 @@ add_custom_target(generate_version ${CMAKE_COMMAND} + -D APP_BUILD_TYPE="${APP_BUILD_TYPE}" + -D SRC="${COMMON_SOURCE_DIR}/Version.h.in" + -D DST="${CMAKE_CURRENT_BINARY_DIR}/Version.h" +- -D GIT_EXECUTABLE="${GIT_EXECUTABLE}" ++ # -D GIT_EXECUTABLE="${GIT_EXECUTABLE}" ++ -D APP_VERSION_YEAR="${APP_VERSION_YEAR}" ++ -D APP_VERSION_NUMBER="${APP_VERSION_NUMBER}" + -P "${CMAKE_CURRENT_SOURCE_DIR}/cmake/GenerateVersion.cmake") + add_dependencies(common generate_version) + +diff --git a/common/cmake/GenerateVersion.cmake b/common/cmake/GenerateVersion.cmake +index 082c04547..776b5bd0c 100644 +--- a/common/cmake/GenerateVersion.cmake ++++ b/common/cmake/GenerateVersion.cmake +@@ -1,8 +1,8 @@ + include("${UTILS}") + + get_filename_component(SRC_DIR ${SRC} DIRECTORY) +-get_git_describe("${GIT_EXECUTABLE}" "${SRC_DIR}" GIT_DESCRIBE) +-get_app_version(GIT_DESCRIBE APP_VERSION_YEAR APP_VERSION_NUMBER) ++# get_git_describe("${GIT_EXECUTABLE}" "${SRC_DIR}" GIT_DESCRIBE) ++# get_app_version(GIT_DESCRIBE APP_VERSION_YEAR APP_VERSION_NUMBER) + get_build_platform(APP_PLATFORM_NAME) + + configure_file("${SRC}" "${DST}" @ONLY) +diff --git a/common/src/io/StandardMapParser.cpp b/common/src/io/StandardMapParser.cpp +index f8521b89b..522782cdb 100644 +--- a/common/src/io/StandardMapParser.cpp ++++ b/common/src/io/StandardMapParser.cpp +@@ -294,7 +294,7 @@ void StandardMapParser::parseObject(ParserStatus& status) + expect(QuakeMapToken::String | QuakeMapToken::OParenthesis, token); + if (token.hasType(QuakeMapToken::String)) + { +- expect({BrushPrimitiveId, PatchId}, token); ++ expect(std::vector{BrushPrimitiveId, PatchId}, token); + if (token.data() == BrushPrimitiveId) + { + parseBrushPrimitive(status, startLocation); +diff --git a/common/src/io/ZipFileSystem.h b/common/src/io/ZipFileSystem.h +index e4fc4d579..156bb6c1b 100644 +--- a/common/src/io/ZipFileSystem.h ++++ b/common/src/io/ZipFileSystem.h +@@ -22,7 +22,7 @@ + #include "Result.h" + #include "io/ImageFileSystem.h" + +-#include ++#include "miniz.h" + + #include + +diff --git a/common/src/render/ShaderProgram.cpp b/common/src/render/ShaderProgram.cpp +index 41be114bb..e1be3ceb6 100644 +--- a/common/src/render/ShaderProgram.cpp ++++ b/common/src/render/ShaderProgram.cpp +@@ -145,7 +145,7 @@ void ShaderProgram::set(const std::string& name, const float value) + void ShaderProgram::set(const std::string& name, const double value) + { + assert(checkActive()); +- glAssert(glUniform1d(findUniformLocation(name), value)); ++ glAssert(glUniform1f(findUniformLocation(name), (float)value)); + } + + void ShaderProgram::set(const std::string& name, const vm::vec2f& value) +diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt +index f4edbf38b..3f27bdd6a 100644 +--- a/lib/CMakeLists.txt ++++ b/lib/CMakeLists.txt +@@ -1,3 +1,4 @@ + add_subdirectory(kdl) + add_subdirectory(vm) + add_subdirectory(stackwalker) ++add_subdirectory(miniz) +diff --git a/lib/miniz/CMakeLists.txt b/lib/miniz/CMakeLists.txt +new file mode 100644 +index 000000000..3e3c07a40 +--- /dev/null ++++ b/lib/miniz/CMakeLists.txt +@@ -0,0 +1,12 @@ ++cmake_minimum_required(VERSION 3.5) ++project(miniz LANGUAGES C VERSION 3.0.2) ++ ++add_library(miniz STATIC) ++add_library(miniz::miniz ALIAS miniz) ++ ++target_sources(miniz PRIVATE ++ ${PROJECT_SOURCE_DIR}/miniz.c ++ ${PROJECT_SOURCE_DIR}/miniz.h ++) ++ ++target_include_directories(miniz PUBLIC ${PROJECT_SOURCE_DIR}) +-- +2.48.1 + diff --git a/dev-games/trenchbroom/trenchbroom-2025.1.recipe b/dev-games/trenchbroom/trenchbroom-2025.1.recipe new file mode 100644 index 000000000..716a6f098 --- /dev/null +++ b/dev-games/trenchbroom/trenchbroom-2025.1.recipe @@ -0,0 +1,108 @@ +SUMMARY="A free cross platform level editor for Quake-engine based games" +DESCRIPTION="TrenchBroom is a level editing program for brush-based game engines +such as Quake, Quake 2, and Hexen 2. TrenchBroom is easy to use and provides many +simple and advanced tools to create complex and interesting levels with ease." +HOMEPAGE="https://trenchbroom.github.io/" +COPYRIGHT="2010 Kristian Duske" +LICENSE="GNU GPL v3" +REVISION="1" +SOURCE_URI="https://github.com/TrenchBroom/TrenchBroom/archive/refs/tags/v$portVersion.tar.gz" +CHECKSUM_SHA256="57770ce2d50af4e9c8b74fedb5c37a5ec9ff400529da3240c1434092636acae5" +SOURCE_URI_2="https://github.com/richgel999/miniz/releases/download/3.0.2/miniz-3.0.2.zip" +CHECKSUM_SHA256_2="ada38db0b703a56d3dd6d57bf84a9c5d664921d870d8fea4db153979fb5332c5" +SOURCE_DIR="TrenchBroom-$portVersion" +ADDITIONAL_FILES="TrenchBroom-$portVersion.rdef.in" +PATCHES="trenchbroom-$portVersion.patchset" + +ARCHITECTURES="all !x86_gcc2" +SECONDARY_ARCHITECTURES="x86" + +PROVIDES=" + trenchbroom$secondaryArchSuffix = $portVersion + app:TrenchBroom + " +REQUIRES=" + haiku$secondaryArchSuffix + lib:libassimp$secondaryArchSuffix + lib:libcatch2$secondaryArchSuffix + lib:libexecinfo$secondaryArchSuffix + lib:libfmt$secondaryArchSuffix >= 11 + lib:libfreeimage$secondaryArchSuffix + lib:libfreetype$secondaryArchSuffix + lib:libGL$secondaryArchSuffix + lib:libglew$secondaryArchSuffix + lib:libminizip$secondaryArchSuffix + lib:libQt6Core$secondaryArchSuffix + lib:libQt6Svg$secondaryArchSuffix + lib:libtinyxml2$secondaryArchSuffix + lib:libz$secondaryArchSuffix + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel + devel:libassimp$secondaryArchSuffix + devel:libcatch2$secondaryArchSuffix + devel:libexecinfo$secondaryArchSuffix + devel:libfmt$secondaryArchSuffix >= 11 + devel:libfreeimage$secondaryArchSuffix + devel:libfreetype$secondaryArchSuffix + devel:libGL$secondaryArchSuffix + devel:libglew$secondaryArchSuffix + devel:libminizip$secondaryArchSuffix + devel:libQt6Core$secondaryArchSuffix + devel:libQt6Svg$secondaryArchSuffix + devel:libtinyxml2$secondaryArchSuffix + devel:libz$secondaryArchSuffix + " +BUILD_PREREQUIRES=" + cmd:cmake + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:make + " + +BUILD() +{ + cp $sourceDir2/miniz{.c,.h} $sourceDir/lib/miniz/ + + local APP_VERSION_YEAR="`echo "${portVersion}" | cut -d. -f1`" + local APP_VERSION_NUMBER="`echo "${portVersion}" | cut -d. -f2`" + + cmake -Bbuild -S. -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=$prefix \ + -Dfreeimage_DIR=$sourceDir/cmake/packages \ + -Dfreetype_DIR=$sourceDir/cmake/packages \ + -Dtinyxml2_DIR=$sourceDir/cmake/packages \ + -DAPP_VERSION_YEAR="$APP_VERSION_YEAR" \ + -DAPP_VERSION_NUMBER="$APP_VERSION_NUMBER" + + make -Cbuild TrenchBroom $jobArgs +} + +INSTALL() +{ + local APP_SIGNATURE="application/x-vnd.TrenchBroom" + local MAJOR="`echo "${portVersion}" | cut -d. -f1`" + local MIDDLE="`echo "${portVersion}" | cut -d. -f2`" + local MINOR="0" + local LONG_INFO="$SUMMARY" + sed \ + -e "s|@APP_SIGNATURE@|$APP_SIGNATURE|" \ + -e "s|@MAJOR@|$MAJOR|" \ + -e "s|@MIDDLE@|$MIDDLE|" \ + -e "s|@MINOR@|$MINOR|" \ + -e "s|@LONG_INFO@|$LONG_INFO|" \ + $portDir/additional-files/TrenchBroom-$portVersion.rdef.in > TrenchBroom-$portVersion.rdef + + mkdir -p $appsDir + cp -a build/app/TrenchBroom $appsDir/TrenchBroom + + addResourcesToBinaries TrenchBroom-$portVersion.rdef $appsDir/TrenchBroom + + # copy resources + # TODO: generate and copy manual + mkdir -p $dataDir/TrenchBroom + cp -r build/app/{defaults,fonts,games,images,shader,stylesheets} $dataDir/TrenchBroom/ + + addAppDeskbarSymlink $appsDir/TrenchBroom +}