Skip to content

Commit f769b42

Browse files
committed
first release
1 parent f9ff900 commit f769b42

File tree

8 files changed

+1934
-1
lines changed

8 files changed

+1934
-1
lines changed

CMakeLists.txt

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
cmake_minimum_required(VERSION 2.8.12 FATAL_ERROR)
2+
project(bchtool)
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 EQUAL 1910 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(BCHTOOL_MAJOR 1)
26+
set(BCHTOOL_MINOR 0)
27+
set(BCHTOOL_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+
if(MSVC OR APPLE OR (NOT CYGWIN AND NOT MINGW))
33+
option(USE_DEP "Use prebuilt dep" ON)
34+
endif()
35+
set(CMAKE_INSTALL_PREFIX "${PROJECT_SOURCE_DIR}")
36+
set(ROOT_SOURCE_DIR "${PROJECT_SOURCE_DIR}")
37+
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${ROOT_SOURCE_DIR}/cmake")
38+
include(AddDep)
39+
include(AddTarget)
40+
include(AutoFiles)
41+
ADD_DEP_INCLUDE_DIR("${ROOT_SOURCE_DIR}/dep/libsundaowen")
42+
if(USE_DEP)
43+
ADD_DEP_INCLUDE_DIR("${ROOT_SOURCE_DIR}/dep/libpng")
44+
ADD_DEP_LIBRARY_DIR("${ROOT_SOURCE_DIR}/dep/zlib")
45+
ADD_DEP_LIBRARY_DIR("${ROOT_SOURCE_DIR}/dep/libpng")
46+
endif()
47+
ADD_DEP_INCLUDE_DIR("${ROOT_SOURCE_DIR}/dep/PVRTexTool/Library")
48+
ADD_DEP_LIBRARY_DIR("${ROOT_SOURCE_DIR}/dep/PVRTexTool/Library")
49+
if(UNIX OR MINGW)
50+
if(CYGWIN)
51+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++11")
52+
else()
53+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
54+
if(NOT APPLE)
55+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -static-libgcc -static-libstdc++")
56+
endif()
57+
endif()
58+
if((UNIX AND BUILD64) OR (MINGW AND CMAKE_SIZEOF_VOID_P EQUAL 8))
59+
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m64")
60+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m64")
61+
else()
62+
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m32")
63+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m32")
64+
endif()
65+
endif()
66+
if(MSVC_IDE OR XCODE_VERSION)
67+
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${PROJECT_SOURCE_DIR}/bin")
68+
else()
69+
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${PROJECT_SOURCE_DIR}/bin/${CMAKE_BUILD_TYPE}")
70+
endif()
71+
add_definitions(-DBCHTOOL_VERSION="${BCHTOOL_MAJOR}.${BCHTOOL_MINOR}.${BCHTOOL_PATCHLEVEL}")
72+
if(WIN32)
73+
add_definitions(-D_CRT_SECURE_NO_WARNINGS)
74+
endif()
75+
if(UNIX OR MINGW)
76+
add_definitions(-D_FILE_OFFSET_BITS=64)
77+
if(NOT APPLE)
78+
add_definitions(-Wno-multichar -Wno-unused-result)
79+
endif()
80+
set(CMAKE_INSTALL_RPATH .)
81+
set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
82+
endif()
83+
add_subdirectory(src)

README.md

Lines changed: 63 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,63 @@
1-
# bchtool
1+
# bchtool
2+
3+
A tool for exporting/importing bch file.
4+
5+
## History
6+
7+
- v1.0.0 @ 2017.07.30 - First release
8+
9+
## Platforms
10+
11+
- Windows
12+
- Linux
13+
- macOS
14+
15+
## Building
16+
17+
### Dependencies
18+
19+
- cmake
20+
- zlib
21+
- libpng
22+
23+
### Compiling
24+
25+
- make 64-bit version
26+
~~~
27+
mkdir project
28+
cd project
29+
cmake -DUSE_DEP=OFF ..
30+
make
31+
~~~
32+
33+
- make 32-bit version
34+
~~~
35+
mkdir project
36+
cd project
37+
cmake -DBUILD64=OFF -DUSE_DEP=OFF ..
38+
make
39+
~~~
40+
41+
### Installing
42+
43+
~~~
44+
make install
45+
~~~
46+
47+
## Usage
48+
49+
### Windows
50+
51+
~~~
52+
bchtool [option...] [option]...
53+
~~~
54+
55+
### Other
56+
57+
~~~
58+
bchtool.sh [option...] [option]...
59+
~~~
60+
61+
## Options
62+
63+
See `bchtool --help` messages.

bin/bchtool.sh

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
#!/bin/bash
2+
3+
cwdir=`pwd`
4+
rootdir=`dirname "$0"`
5+
cd "$rootdir"
6+
rootdir=`pwd`
7+
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:"$rootdir"
8+
cd "$cwdir"
9+
"$rootdir/bchtool" "$1" "$2" "$3" "$4" "$5" "$6"

src/CMakeLists.txt

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
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(MSVC)
7+
string(REPLACE "/MDd" "" CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}")
8+
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MTd")
9+
string(REPLACE "/MD" "" CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL}")
10+
set(CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL} /MT")
11+
string(REPLACE "/MD" "" CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}")
12+
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /MT")
13+
string(REPLACE "/MD" "" CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO}")
14+
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} /MT")
15+
endif()
16+
ADD_EXE(bchtool "${src}")
17+
if(WIN32)
18+
if(MSVC)
19+
target_link_libraries(bchtool libpng16_static zlibstatic PVRTexLib)
20+
set_target_properties(bchtool PROPERTIES LINK_FLAGS_DEBUG "/NODEFAULTLIB:LIBCMT")
21+
else()
22+
target_link_libraries(bchtool png16 z)
23+
endif()
24+
else()
25+
target_link_libraries(bchtool png16 z PVRTexLib pthread)
26+
if(CYGWIN)
27+
target_link_libraries(bchtool iconv)
28+
endif()
29+
endif()
30+
GET_CURRENT_DEP_LIBRARY_PREFIX("${ROOT_SOURCE_DIR}/dep/PVRTexTool/Library")
31+
if(WIN32)
32+
add_custom_command(TARGET bchtool POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different "${ROOT_SOURCE_DIR}/dep/PVRTexTool/Library/${CURRENT_DEP_LIBRARY_PREFIX}/PVRTexLib.dll" $<TARGET_FILE_DIR:bchtool>)
33+
elseif(APPLE)
34+
add_custom_command(TARGET bchtool POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different "${ROOT_SOURCE_DIR}/dep/PVRTexTool/Library/${CURRENT_DEP_LIBRARY_PREFIX}/libPVRTexLib.dylib" $<TARGET_FILE_DIR:bchtool> COMMAND install_name_tool -change @executable_path/../lib/libPVRTexLib.dylib @executable_path/libPVRTexLib.dylib $<TARGET_FILE:bchtool>)
35+
else()
36+
add_custom_command(TARGET bchtool POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different "${ROOT_SOURCE_DIR}/dep/PVRTexTool/Library/${CURRENT_DEP_LIBRARY_PREFIX}/libPVRTexLib.so" $<TARGET_FILE_DIR:bchtool>)
37+
endif()
38+
install(TARGETS bchtool DESTINATION bin)
39+
if(WIN32)
40+
install(FILES $<TARGET_FILE_DIR:bchtool>/PVRTexLib.dll DESTINATION bin)
41+
elseif(APPLE)
42+
install(FILES $<TARGET_FILE_DIR:bchtool>/libPVRTexLib.dylib DESTINATION bin)
43+
else()
44+
install(FILES $<TARGET_FILE_DIR:bchtool>/libPVRTexLib.so DESTINATION bin)
45+
endif()

0 commit comments

Comments
 (0)