Skip to content

Commit c4c58f2

Browse files
committed
support romfs
1 parent 42c2a4f commit c4c58f2

14 files changed

+1967
-1
lines changed

.gitignore

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
/bin
2+
/build

.gitmodules

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
[submodule "cmake"]
2+
path = cmake
3+
url = https://github.com/dnasdw/libsundaowen_cmake.git
4+
[submodule "dep/libsundaowen"]
5+
path = dep/libsundaowen
6+
url = https://github.com/dnasdw/libsundaowen_src.git

CMakeLists.txt

+73
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
cmake_minimum_required(VERSION 2.8.12 FATAL_ERROR)
2+
project(nstool)
3+
if(MSVC_VERSION EQUAL 1700 AND MSVC_IDE)
4+
set(CMAKE_GENERATOR_TOOLSET "v110_xp" CACHE STRING "Name of generator toolset." FORCE)
5+
endif()
6+
if(MSVC_VERSION EQUAL 1800 AND MSVC_IDE)
7+
set(CMAKE_GENERATOR_TOOLSET "v120_xp" CACHE STRING "Name of generator toolset." FORCE)
8+
endif()
9+
if(MSVC_VERSION EQUAL 1900 AND MSVC_IDE)
10+
set(CMAKE_GENERATOR_TOOLSET "v140_xp" CACHE STRING "Name of generator toolset." FORCE)
11+
endif()
12+
if(MSVC_VERSION GREATER 1909 AND MSVC_VERSION LESS 1920 AND MSVC_IDE)
13+
set(CMAKE_GENERATOR_TOOLSET "v141_xp" CACHE STRING "Name of generator toolset." FORCE)
14+
endif()
15+
if(MSVC_VERSION GREATER 1600 AND NOT MSVC_IDE)
16+
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
17+
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /SUBSYSTEM:CONSOLE,5.02")
18+
else()
19+
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /SUBSYSTEM:CONSOLE,5.01")
20+
endif()
21+
endif()
22+
if(APPLE)
23+
set(CMAKE_MACOSX_RPATH 1)
24+
endif()
25+
set(NSTOOL_MAJOR 1)
26+
set(NSTOOL_MINOR 0)
27+
set(NSTOOL_PATCHLEVEL 0)
28+
if(NOT MSVC_IDE AND NOT XCODE_VERSION AND NOT CMAKE_BUILD_TYPE)
29+
set(CMAKE_BUILD_TYPE "Release" CACHE STRING "Choose the type of build, options are: None(CMAKE_CXX_FLAGS or CMAKE_C_FLAGS used) Debug Release RelWithDebInfo MinSizeRel." FORCE)
30+
endif()
31+
option(BUILD64 "Build x86_64(unix only)" ON)
32+
set(CMAKE_INSTALL_PREFIX "${PROJECT_SOURCE_DIR}")
33+
set(ROOT_SOURCE_DIR "${PROJECT_SOURCE_DIR}")
34+
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${ROOT_SOURCE_DIR}/cmake")
35+
include(AddDep)
36+
include(AddTarget)
37+
include(AutoFiles)
38+
ADD_DEP_INCLUDE_DIR("${ROOT_SOURCE_DIR}/dep/libsundaowen")
39+
if(UNIX OR MINGW)
40+
if(CYGWIN)
41+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++11")
42+
else()
43+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
44+
if(NOT APPLE)
45+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -static-libgcc -static-libstdc++")
46+
endif()
47+
endif()
48+
if((UNIX AND BUILD64) OR (MINGW AND CMAKE_SIZEOF_VOID_P EQUAL 8))
49+
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m64")
50+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m64")
51+
else()
52+
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m32")
53+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m32")
54+
endif()
55+
endif()
56+
if(MSVC_IDE OR XCODE_VERSION)
57+
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${PROJECT_SOURCE_DIR}/bin")
58+
else()
59+
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${PROJECT_SOURCE_DIR}/bin/${CMAKE_BUILD_TYPE}")
60+
endif()
61+
add_definitions(-DNSTOOL_VERSION="${NSTOOL_MAJOR}.${NSTOOL_MINOR}.${NSTOOL_PATCHLEVEL}")
62+
if(WIN32)
63+
add_definitions(-D_CRT_SECURE_NO_WARNINGS)
64+
endif()
65+
if(UNIX OR MINGW)
66+
add_definitions(-D_FILE_OFFSET_BITS=64)
67+
if(NOT APPLE)
68+
add_definitions(-Wno-multichar -Wno-unused-result)
69+
endif()
70+
set(CMAKE_INSTALL_RPATH .)
71+
set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
72+
endif()
73+
add_subdirectory(src)

README.md

+52-1
Original file line numberDiff line numberDiff line change
@@ -1 +1,52 @@
1-
# nstool
1+
# nstool
2+
3+
## History
4+
5+
- v1.0.0 @ 2018.07.01 - Support romfs
6+
7+
## Platforms
8+
9+
- Windows
10+
- Linux
11+
- macOS
12+
13+
## Building
14+
15+
### Dependencies
16+
17+
- cmake
18+
- libiconv
19+
20+
### Compiling
21+
22+
- make 64-bit version
23+
~~~
24+
mkdir build
25+
cd build
26+
cmake ..
27+
make
28+
~~~
29+
30+
- make 32-bit version
31+
~~~
32+
mkdir build
33+
cd build
34+
cmake -DBUILD64=OFF ..
35+
make
36+
~~~
37+
38+
### Installing
39+
40+
~~~
41+
make install
42+
~~~
43+
44+
## Usage
45+
46+
~~~
47+
nstool [option...] [option]...
48+
~~~
49+
50+
## Options
51+
52+
See `nstool --help` messages.

bin/ignore_nstool.txt

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
// regex: ECMAScript grammar and case insensitive
2+
//ignore:
3+
4+
//remap ignore:

cmake

Submodule cmake added at c104d9e

dep/libsundaowen

Submodule libsundaowen added at e7a3219

src/CMakeLists.txt

+23
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
AUTO_FILES("." "src" "\\.(cpp|h)$")
2+
AUTO_FILES("${ROOT_SOURCE_DIR}/dep/libsundaowen" "src" "\\.(cpp|h)$")
3+
include_directories(${DEP_INCLUDE_DIR})
4+
link_directories(${DEP_LIBRARY_DIR})
5+
add_definitions(-DSDW_MAIN)
6+
if(APPLE)
7+
add_definitions(-DSDW_XCONVERT)
8+
endif()
9+
if(MSVC)
10+
string(REPLACE "/MDd" "" CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}")
11+
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MTd")
12+
string(REPLACE "/MD" "" CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL}")
13+
set(CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL} /MT")
14+
string(REPLACE "/MD" "" CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}")
15+
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /MT")
16+
string(REPLACE "/MD" "" CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO}")
17+
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} /MT")
18+
endif()
19+
ADD_EXE(nstool "${src}")
20+
if(APPLE OR CYGWIN)
21+
target_link_libraries(nstool iconv)
22+
endif()
23+
install(TARGETS nstool DESTINATION bin)

0 commit comments

Comments
 (0)