Skip to content
This repository was archived by the owner on Sep 19, 2020. It is now read-only.

Commit ffee0bb

Browse files
authored
Merge pull request Unity-Technologies#5 from illwieckz/cmake
add cmake support
2 parents f6e48df + f8cb721 commit ffee0bb

File tree

8 files changed

+281
-0
lines changed

8 files changed

+281
-0
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,3 +15,4 @@
1515
/lib
1616
/bin/*
1717
!bin/crunch_x64.exe
18+
/build

CMakeLists.txt

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
cmake_minimum_required(VERSION 3.1)
2+
3+
set(CRUNCH_PROJECT_NAME crunch)
4+
set(CRUNCH_LIBRARY_NAME crn)
5+
set(CRUNCH_EXE_NAME crunch)
6+
7+
project(${CRUNCH_PROJECT_NAME} )
8+
9+
option(BUILD_SHARED_LIBS "Build crunchlib as shared library and link executables against it." OFF)
10+
option(BUILD_EXAMPLES "Build examples." OFF)
11+
12+
if (BUILD_EXAMPLES)
13+
add_subdirectory(example1)
14+
add_subdirectory(example2)
15+
add_subdirectory(example3)
16+
endif(BUILD_EXAMPLES)
17+
18+
add_subdirectory(crunch)
19+
add_subdirectory(crnlib)

crnlib/CMakeLists.txt

Lines changed: 198 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,198 @@
1+
include_directories(
2+
${CMAKE_SOURCE_DIR}/inc
3+
)
4+
5+
# Defines the source code for the library
6+
set(CRNLIB_SRCS
7+
${CMAKE_CURRENT_SOURCE_DIR}/crn_arealist.cpp
8+
${CMAKE_CURRENT_SOURCE_DIR}/crn_arealist.h
9+
${CMAKE_CURRENT_SOURCE_DIR}/crn_assert.cpp
10+
${CMAKE_CURRENT_SOURCE_DIR}/crn_assert.h
11+
${CMAKE_CURRENT_SOURCE_DIR}/crn_buffer_stream.h
12+
${CMAKE_CURRENT_SOURCE_DIR}/crn_cfile_stream.h
13+
${CMAKE_CURRENT_SOURCE_DIR}/crn_checksum.cpp
14+
${CMAKE_CURRENT_SOURCE_DIR}/crn_checksum.h
15+
${CMAKE_CURRENT_SOURCE_DIR}/crn_clusterizer.h
16+
${CMAKE_CURRENT_SOURCE_DIR}/crn_color.h
17+
${CMAKE_CURRENT_SOURCE_DIR}/crn_colorized_console.cpp
18+
${CMAKE_CURRENT_SOURCE_DIR}/crn_colorized_console.h
19+
${CMAKE_CURRENT_SOURCE_DIR}/crn_command_line_params.cpp
20+
${CMAKE_CURRENT_SOURCE_DIR}/crn_command_line_params.h
21+
${CMAKE_CURRENT_SOURCE_DIR}/crn_comp.cpp
22+
${CMAKE_CURRENT_SOURCE_DIR}/crn_comp.h
23+
${CMAKE_CURRENT_SOURCE_DIR}/crn_console.cpp
24+
${CMAKE_CURRENT_SOURCE_DIR}/crn_console.h
25+
${CMAKE_CURRENT_SOURCE_DIR}/crn_core.cpp
26+
${CMAKE_CURRENT_SOURCE_DIR}/crn_core.h
27+
${CMAKE_CURRENT_SOURCE_DIR}/crn_data_stream.cpp
28+
${CMAKE_CURRENT_SOURCE_DIR}/crn_data_stream.h
29+
${CMAKE_CURRENT_SOURCE_DIR}/crn_data_stream_serializer.h
30+
${CMAKE_CURRENT_SOURCE_DIR}/crn_dds_comp.cpp
31+
${CMAKE_CURRENT_SOURCE_DIR}/crn_dds_comp.h
32+
${CMAKE_CURRENT_SOURCE_DIR}/crn_decomp.cpp
33+
${CMAKE_CURRENT_SOURCE_DIR}/crn_dxt.cpp
34+
${CMAKE_CURRENT_SOURCE_DIR}/crn_dxt.h
35+
${CMAKE_CURRENT_SOURCE_DIR}/crn_dxt1.cpp
36+
${CMAKE_CURRENT_SOURCE_DIR}/crn_dxt1.h
37+
${CMAKE_CURRENT_SOURCE_DIR}/crn_dxt5a.cpp
38+
${CMAKE_CURRENT_SOURCE_DIR}/crn_dxt5a.h
39+
${CMAKE_CURRENT_SOURCE_DIR}/crn_dxt_endpoint_refiner.cpp
40+
${CMAKE_CURRENT_SOURCE_DIR}/crn_dxt_endpoint_refiner.h
41+
${CMAKE_CURRENT_SOURCE_DIR}/crn_dxt_fast.cpp
42+
${CMAKE_CURRENT_SOURCE_DIR}/crn_dxt_fast.h
43+
${CMAKE_CURRENT_SOURCE_DIR}/crn_dxt_hc.cpp
44+
${CMAKE_CURRENT_SOURCE_DIR}/crn_dxt_hc.h
45+
${CMAKE_CURRENT_SOURCE_DIR}/crn_dxt_hc_common.cpp
46+
${CMAKE_CURRENT_SOURCE_DIR}/crn_dxt_hc_common.h
47+
${CMAKE_CURRENT_SOURCE_DIR}/crn_dxt_image.cpp
48+
${CMAKE_CURRENT_SOURCE_DIR}/crn_dxt_image.h
49+
${CMAKE_CURRENT_SOURCE_DIR}/crn_dynamic_stream.h
50+
${CMAKE_CURRENT_SOURCE_DIR}/crn_dynamic_string.cpp
51+
${CMAKE_CURRENT_SOURCE_DIR}/crn_dynamic_string.h
52+
${CMAKE_CURRENT_SOURCE_DIR}/crn_etc.cpp
53+
${CMAKE_CURRENT_SOURCE_DIR}/crn_etc.h
54+
${CMAKE_CURRENT_SOURCE_DIR}/crn_file_utils.cpp
55+
${CMAKE_CURRENT_SOURCE_DIR}/crn_file_utils.h
56+
${CMAKE_CURRENT_SOURCE_DIR}/crn_find_files.cpp
57+
${CMAKE_CURRENT_SOURCE_DIR}/crn_find_files.h
58+
${CMAKE_CURRENT_SOURCE_DIR}/crn_hash.cpp
59+
${CMAKE_CURRENT_SOURCE_DIR}/crn_hash.h
60+
${CMAKE_CURRENT_SOURCE_DIR}/crn_hash_map.cpp
61+
${CMAKE_CURRENT_SOURCE_DIR}/crn_hash_map.h
62+
${CMAKE_CURRENT_SOURCE_DIR}/crn_helpers.h
63+
${CMAKE_CURRENT_SOURCE_DIR}/crn_huffman_codes.cpp
64+
${CMAKE_CURRENT_SOURCE_DIR}/crn_huffman_codes.h
65+
${CMAKE_CURRENT_SOURCE_DIR}/crn_image.h
66+
${CMAKE_CURRENT_SOURCE_DIR}/crn_image_utils.cpp
67+
${CMAKE_CURRENT_SOURCE_DIR}/crn_image_utils.h
68+
${CMAKE_CURRENT_SOURCE_DIR}/crn_intersect.h
69+
${CMAKE_CURRENT_SOURCE_DIR}/crn_jpgd.cpp
70+
${CMAKE_CURRENT_SOURCE_DIR}/crn_jpgd.h
71+
${CMAKE_CURRENT_SOURCE_DIR}/crn_jpge.cpp
72+
${CMAKE_CURRENT_SOURCE_DIR}/crn_jpge.h
73+
${CMAKE_CURRENT_SOURCE_DIR}/crn_ktx_texture.cpp
74+
${CMAKE_CURRENT_SOURCE_DIR}/crn_ktx_texture.h
75+
${CMAKE_CURRENT_SOURCE_DIR}/crn_lzma_codec.cpp
76+
${CMAKE_CURRENT_SOURCE_DIR}/crn_lzma_codec.h
77+
${CMAKE_CURRENT_SOURCE_DIR}/crn_math.cpp
78+
${CMAKE_CURRENT_SOURCE_DIR}/crn_math.h
79+
${CMAKE_CURRENT_SOURCE_DIR}/crn_matrix.h
80+
${CMAKE_CURRENT_SOURCE_DIR}/crn_mem.cpp
81+
${CMAKE_CURRENT_SOURCE_DIR}/crn_mem.h
82+
${CMAKE_CURRENT_SOURCE_DIR}/crn_miniz.cpp
83+
${CMAKE_CURRENT_SOURCE_DIR}/crn_miniz.h
84+
${CMAKE_CURRENT_SOURCE_DIR}/crn_mipmapped_texture.cpp
85+
${CMAKE_CURRENT_SOURCE_DIR}/crn_mipmapped_texture.h
86+
${CMAKE_CURRENT_SOURCE_DIR}/crn_packed_uint.h
87+
${CMAKE_CURRENT_SOURCE_DIR}/crn_pixel_format.cpp
88+
${CMAKE_CURRENT_SOURCE_DIR}/crn_pixel_format.h
89+
${CMAKE_CURRENT_SOURCE_DIR}/crn_platform.cpp
90+
${CMAKE_CURRENT_SOURCE_DIR}/crn_platform.h
91+
${CMAKE_CURRENT_SOURCE_DIR}/crn_prefix_coding.cpp
92+
${CMAKE_CURRENT_SOURCE_DIR}/crn_prefix_coding.h
93+
${CMAKE_CURRENT_SOURCE_DIR}/crn_qdxt1.cpp
94+
${CMAKE_CURRENT_SOURCE_DIR}/crn_qdxt1.h
95+
${CMAKE_CURRENT_SOURCE_DIR}/crn_qdxt5.cpp
96+
${CMAKE_CURRENT_SOURCE_DIR}/crn_qdxt5.h
97+
${CMAKE_CURRENT_SOURCE_DIR}/crn_rand.cpp
98+
${CMAKE_CURRENT_SOURCE_DIR}/crn_rand.h
99+
${CMAKE_CURRENT_SOURCE_DIR}/crn_ray.h
100+
${CMAKE_CURRENT_SOURCE_DIR}/crn_rect.h
101+
${CMAKE_CURRENT_SOURCE_DIR}/crn_resample_filters.cpp
102+
${CMAKE_CURRENT_SOURCE_DIR}/crn_resample_filters.h
103+
${CMAKE_CURRENT_SOURCE_DIR}/crn_resampler.cpp
104+
${CMAKE_CURRENT_SOURCE_DIR}/crn_resampler.h
105+
${CMAKE_CURRENT_SOURCE_DIR}/crn_rg_etc1.cpp
106+
${CMAKE_CURRENT_SOURCE_DIR}/crn_rg_etc1.h
107+
${CMAKE_CURRENT_SOURCE_DIR}/crn_ryg_dxt.cpp
108+
${CMAKE_CURRENT_SOURCE_DIR}/crn_ryg_dxt.hpp
109+
${CMAKE_CURRENT_SOURCE_DIR}/crn_ryg_types.hpp
110+
${CMAKE_CURRENT_SOURCE_DIR}/crn_sparse_array.h
111+
${CMAKE_CURRENT_SOURCE_DIR}/crn_sparse_bit_array.cpp
112+
${CMAKE_CURRENT_SOURCE_DIR}/crn_sparse_bit_array.h
113+
${CMAKE_CURRENT_SOURCE_DIR}/crn_stb_image.cpp
114+
${CMAKE_CURRENT_SOURCE_DIR}/crn_strutils.cpp
115+
${CMAKE_CURRENT_SOURCE_DIR}/crn_strutils.h
116+
${CMAKE_CURRENT_SOURCE_DIR}/crn_symbol_codec.cpp
117+
${CMAKE_CURRENT_SOURCE_DIR}/crn_symbol_codec.h
118+
${CMAKE_CURRENT_SOURCE_DIR}/crn_texture_comp.cpp
119+
${CMAKE_CURRENT_SOURCE_DIR}/crn_texture_comp.h
120+
${CMAKE_CURRENT_SOURCE_DIR}/crn_texture_conversion.cpp
121+
${CMAKE_CURRENT_SOURCE_DIR}/crn_texture_conversion.h
122+
${CMAKE_CURRENT_SOURCE_DIR}/crn_texture_file_types.cpp
123+
${CMAKE_CURRENT_SOURCE_DIR}/crn_texture_file_types.h
124+
${CMAKE_CURRENT_SOURCE_DIR}/crn_threaded_clusterizer.h
125+
${CMAKE_CURRENT_SOURCE_DIR}/crn_threaded_resampler.cpp
126+
${CMAKE_CURRENT_SOURCE_DIR}/crn_threaded_resampler.h
127+
${CMAKE_CURRENT_SOURCE_DIR}/crn_threading.h
128+
${CMAKE_CURRENT_SOURCE_DIR}/crn_threading_null.h
129+
${CMAKE_CURRENT_SOURCE_DIR}/crn_timer.cpp
130+
${CMAKE_CURRENT_SOURCE_DIR}/crn_timer.h
131+
${CMAKE_CURRENT_SOURCE_DIR}/crn_traits.h
132+
${CMAKE_CURRENT_SOURCE_DIR}/crn_tree_clusterizer.h
133+
${CMAKE_CURRENT_SOURCE_DIR}/crn_types.h
134+
${CMAKE_CURRENT_SOURCE_DIR}/crn_utils.cpp
135+
${CMAKE_CURRENT_SOURCE_DIR}/crn_utils.h
136+
${CMAKE_CURRENT_SOURCE_DIR}/crn_value.cpp
137+
${CMAKE_CURRENT_SOURCE_DIR}/crn_value.h
138+
${CMAKE_CURRENT_SOURCE_DIR}/crn_vec.h
139+
${CMAKE_CURRENT_SOURCE_DIR}/crn_vec_interval.h
140+
${CMAKE_CURRENT_SOURCE_DIR}/crn_vector.cpp
141+
${CMAKE_CURRENT_SOURCE_DIR}/crn_vector.h
142+
${CMAKE_CURRENT_SOURCE_DIR}/crn_vector2d.h
143+
${CMAKE_CURRENT_SOURCE_DIR}/crn_winhdr.h
144+
${CMAKE_CURRENT_SOURCE_DIR}/crnlib.cpp
145+
${CMAKE_CURRENT_SOURCE_DIR}/lzma_7zBuf.cpp
146+
${CMAKE_CURRENT_SOURCE_DIR}/lzma_7zBuf.h
147+
${CMAKE_CURRENT_SOURCE_DIR}/lzma_7zBuf2.cpp
148+
${CMAKE_CURRENT_SOURCE_DIR}/lzma_7zCrc.h
149+
${CMAKE_CURRENT_SOURCE_DIR}/lzma_7zFile.cpp
150+
${CMAKE_CURRENT_SOURCE_DIR}/lzma_7zFile.h
151+
${CMAKE_CURRENT_SOURCE_DIR}/lzma_7zStream.cpp
152+
${CMAKE_CURRENT_SOURCE_DIR}/lzma_7zVersion.h
153+
${CMAKE_CURRENT_SOURCE_DIR}/lzma_Alloc.cpp
154+
${CMAKE_CURRENT_SOURCE_DIR}/lzma_Alloc.h
155+
${CMAKE_CURRENT_SOURCE_DIR}/lzma_Bcj2.cpp
156+
${CMAKE_CURRENT_SOURCE_DIR}/lzma_Bcj2.h
157+
${CMAKE_CURRENT_SOURCE_DIR}/lzma_Bra.cpp
158+
${CMAKE_CURRENT_SOURCE_DIR}/lzma_Bra.h
159+
${CMAKE_CURRENT_SOURCE_DIR}/lzma_Bra86.cpp
160+
${CMAKE_CURRENT_SOURCE_DIR}/lzma_BraIA64.cpp
161+
${CMAKE_CURRENT_SOURCE_DIR}/lzma_CpuArch.h
162+
${CMAKE_CURRENT_SOURCE_DIR}/lzma_LzFind.cpp
163+
${CMAKE_CURRENT_SOURCE_DIR}/lzma_LzFind.h
164+
${CMAKE_CURRENT_SOURCE_DIR}/lzma_LzHash.h
165+
${CMAKE_CURRENT_SOURCE_DIR}/lzma_LzmaDec.cpp
166+
${CMAKE_CURRENT_SOURCE_DIR}/lzma_LzmaDec.h
167+
${CMAKE_CURRENT_SOURCE_DIR}/lzma_LzmaEnc.cpp
168+
${CMAKE_CURRENT_SOURCE_DIR}/lzma_LzmaEnc.h
169+
${CMAKE_CURRENT_SOURCE_DIR}/lzma_LzmaLib.cpp
170+
${CMAKE_CURRENT_SOURCE_DIR}/lzma_LzmaLib.h
171+
${CMAKE_CURRENT_SOURCE_DIR}/lzma_MyVersion.h
172+
${CMAKE_CURRENT_SOURCE_DIR}/lzma_Types.h
173+
${CMAKE_CURRENT_SOURCE_DIR}/../inc/crn_decomp.h
174+
${CMAKE_CURRENT_SOURCE_DIR}/../inc/crnlib.h
175+
${CMAKE_CURRENT_SOURCE_DIR}/../inc/dds_defs.h
176+
)
177+
178+
if(WIN32)
179+
set(CRNLIB_THREAD_SRCS
180+
${CMAKE_CURRENT_SOURCE_DIR}/lzma_LzFindMt.cpp
181+
${CMAKE_CURRENT_SOURCE_DIR}/lzma_LzFindMt.h
182+
${CMAKE_CURRENT_SOURCE_DIR}/lzma_Threads.cpp
183+
${CMAKE_CURRENT_SOURCE_DIR}/lzma_Threads.h
184+
${CMAKE_CURRENT_SOURCE_DIR}/crn_threading_win32.cpp
185+
${CMAKE_CURRENT_SOURCE_DIR}/crn_threading_win32.h
186+
)
187+
else(WIN32)
188+
set(CRNLIB_THREAD_SRCS
189+
${CMAKE_CURRENT_SOURCE_DIR}/crn_threading_pthreads.h
190+
${CMAKE_CURRENT_SOURCE_DIR}/crn_threading_pthreads.cpp
191+
)
192+
endif()
193+
194+
if (BUILD_SHARED_LIBS)
195+
add_library(${CRUNCH_LIBRARY_NAME} SHARED ${CRNLIB_SRCS} ${CRNLIB_THREAD_SRCS})
196+
else()
197+
add_library(${CRUNCH_LIBRARY_NAME} STATIC ${CRNLIB_SRCS} ${CRNLIB_THREAD_SRCS})
198+
endif()

crnlib/Makefile

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
.DEFAULT_GOAL := all
2+
.PHONY: all clean
3+
14
COMPILE_OPTIONS = -O3 -fomit-frame-pointer -ffast-math -fno-math-errno -g -fno-strict-aliasing -Wall -Wno-unused-value -Wno-unused -march=core2
25
LINKER_OPTIONS = -lpthread -g
36

@@ -93,3 +96,5 @@ corpus_test.o: ../crunch/corpus_test.cpp
9396
crunch: $(OBJECTS) crunch.o corpus_gen.o corpus_test.o
9497
g++ $(OBJECTS) crunch.o corpus_gen.o corpus_test.o -o crunch $(LINKER_OPTIONS)
9598

99+
clean:
100+
rm $(OBJECTS) crunch.o corpus_gen.o corpus_test.o crunch

crunch/CMakeLists.txt

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
find_package (Threads)
2+
3+
include_directories(
4+
${CMAKE_SOURCE_DIR}/inc
5+
${CMAKE_SOURCE_DIR}/crnlib
6+
)
7+
8+
# Defines the source code for the library
9+
set(CRUNCH_SRCS
10+
${CMAKE_CURRENT_SOURCE_DIR}/corpus_gen.cpp
11+
${CMAKE_CURRENT_SOURCE_DIR}/corpus_gen.h
12+
${CMAKE_CURRENT_SOURCE_DIR}/corpus_test.cpp
13+
${CMAKE_CURRENT_SOURCE_DIR}/corpus_test.h
14+
${CMAKE_CURRENT_SOURCE_DIR}/crunch.cpp
15+
)
16+
17+
add_executable(${CRUNCH_EXE_NAME} ${CRUNCH_SRCS})
18+
target_link_libraries(${CRUNCH_EXE_NAME} ${CRUNCH_LIBRARY_NAME} ${CMAKE_THREAD_LIBS_INIT})

example1/CMakeLists.txt

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
include_directories(
2+
${CMAKE_SOURCE_DIR}/inc
3+
${CMAKE_SOURCE_DIR}/crnlib
4+
)
5+
6+
# Defines the source code for the library
7+
set(EXAMPLE1_SRCS
8+
${CMAKE_CURRENT_SOURCE_DIR}/example1.cpp
9+
${CMAKE_CURRENT_SOURCE_DIR}/stb_image.h
10+
)
11+
12+
add_executable(example1 ${EXAMPLE1_SRCS})
13+
target_link_libraries(example1 ${CRUNCH_LIBRARY_NAME})

example2/CMakeLists.txt

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
include_directories(
2+
${CMAKE_SOURCE_DIR}/inc
3+
${CMAKE_SOURCE_DIR}/crnlib
4+
)
5+
6+
# Defines the source code for the library
7+
set(EXAMPLE2_SRCS
8+
${CMAKE_CURRENT_SOURCE_DIR}/example2.cpp
9+
${CMAKE_CURRENT_SOURCE_DIR}/timer.cpp
10+
${CMAKE_CURRENT_SOURCE_DIR}/timer.h
11+
)
12+
13+
add_executable(example2 ${EXAMPLE2_SRCS})
14+
target_link_libraries(example2 ${CRUNCH_LIBRARY_NAME})

example3/CMakeLists.txt

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
include_directories(
2+
${CMAKE_SOURCE_DIR}/inc
3+
${CMAKE_SOURCE_DIR}/crnlib
4+
)
5+
6+
# Defines the source code for the library
7+
set(EXAMPLE3_SRCS
8+
${CMAKE_CURRENT_SOURCE_DIR}/example3.cpp
9+
${CMAKE_CURRENT_SOURCE_DIR}/stb_image.h
10+
)
11+
12+
add_executable(example3 ${EXAMPLE3_SRCS})
13+
target_link_libraries(example3 ${CRUNCH_LIBRARY_NAME})

0 commit comments

Comments
 (0)