Add unpacktool to CMake, port to *nix

- Adds missing includes, removes some unused ones.
- Removes unused Windows.h and shellapi.h includes.
- Uses / as path separator. This is portable and should still work fine
  on Windows.
This commit is contained in:
Diomendius
2024-06-16 16:57:53 +12:00
parent e78d93437a
commit 5c74c96771
7 changed files with 45 additions and 6 deletions

View File

@@ -406,5 +406,40 @@ target_include_directories(HouseTool PRIVATE
)
target_link_libraries(HouseTool PortabilityLayer MacRomanConversion)
add_executable(unpacktool
unpacktool/ArchiveDescription.cpp
unpacktool/BWT.cpp
unpacktool/CompactProLZHDecompressor.cpp
unpacktool/CompactProLZHRLEDecompressor.cpp
unpacktool/CompactProParser.cpp
unpacktool/CompactProRLEDecompressor.cpp
unpacktool/CRC.cpp
unpacktool/CSInputBuffer.cpp
unpacktool/DecompressorProxyReader.cpp
unpacktool/LZSSDecompressor.cpp
unpacktool/LZW.cpp
unpacktool/LZWDecompressor.cpp
unpacktool/NullDecompressor.cpp
unpacktool/PrefixCode.cpp
unpacktool/RLE90Decompressor.cpp
unpacktool/StringCommon.cpp
unpacktool/StuffIt13Decompressor.cpp
unpacktool/StuffIt5Parser.cpp
unpacktool/StuffItArsenicDecompressor.cpp
unpacktool/StuffItCommon.cpp
unpacktool/StuffItHuffmanDecompressor.cpp
unpacktool/StuffItParser.cpp
unpacktool/unpacktool.cpp
WindowsUnicodeToolShim/UnixUnicodeToolShim.cpp
)
target_include_directories(unpacktool PRIVATE
Common
GpCommon
PortabilityLayer
MacRomanConversion
WindowsUnicodeToolShim
)
target_link_libraries(unpacktool PortabilityLayer MacRomanConversion)
install (TARGETS ${EXECNAME})

View File

@@ -1,5 +1,7 @@
#pragma once
#include <cstdint>
#include "IDecompressor.h"
class CompactProRLEDecompressor : public IDecompressor

View File

@@ -1,6 +1,6 @@
#pragma once
#include <stdint.h>
#include <cstddef>
struct CSInputBuffer;

View File

@@ -1,6 +1,7 @@
#pragma once
#include <stdint.h>
#include <cstddef>
#include <cstdint>
struct IFileReader
{

View File

@@ -1,3 +1,5 @@
#include <climits>
#include "PrefixCode.h"
struct XADCodeTreeNode

View File

@@ -1,5 +1,7 @@
#pragma once
#include <cstdint>
#include "IDecompressor.h"
class RLE90Decompressor : public IDecompressor

View File

@@ -28,9 +28,6 @@
#include <string.h>
#include <Windows.h>
#include <shellapi.h>
#include <string>
#include <vector>
@@ -387,7 +384,7 @@ int ExtractItem(int depth, const ArchiveItem &item, const std::string &dirPath,
{
mkdir_utf8(path.c_str());
path.append("\\");
path.append("/");
int returnCode = RecursiveExtractFiles(depth + 1, item.m_children, path, pathParanoid, reader, ts);
if (returnCode)