Skip to content
Open
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,7 @@
*.o
crnlib/crunch

# Visual studio 2022 Build artifacts
# for Cmake.
/out/
/.vs
39 changes: 39 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# CMakeList.txt : CMake project for CommonDataLibs, include source and define
# project specific logic here.
#
cmake_minimum_required (VERSION 3.8)

# Enable Hot Reload for MSVC compilers if supported.
if (POLICY CMP0141)
cmake_policy(SET CMP0141 NEW)
set(CMAKE_MSVC_DEBUG_INFORMATION_FORMAT "$<IF:$<AND:$<C_COMPILER_ID:MSVC>,$<CXX_COMPILER_ID:MSVC>>,$<$<CONFIG:Debug,RelWithDebInfo>:EditAndContinue>,$<$<CONFIG:Debug,RelWithDebInfo>:ProgramDatabase>>")
endif()

project ("Crunch")


# These are turned off by default.
option(CRUNCH_BUILD_CRUNCH_EXECUTABLE "Build Crunch executable" OFF)
option(CRUNCH_BUILD_CRUNCH_EXAMPLES "Build Crunch Examples" OFF)
# Add source to this project's executable.

include_directories("inc")

add_subdirectory("crnlib")

if(CRUNCH_BUILD_CRUNCH_EXECUTABLE)
add_subdirectory("crunch")
endif()

#TODO: Test examples on other platforms
if(CRUNCH_BUILD_CRUNCH_EXAMPLES AND WIN32)
#crunch Example1
add_subdirectory("example1")

#crunch Example2:
add_subdirectory("example2")

#crunch Example3:
add_subdirectory("example3")
endif()
# TODO: Add tests and install targets if needed.
211 changes: 211 additions & 0 deletions crnlib/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,211 @@
add_library(crn_lzhmalib OBJECT
# From LZHAM:
#"lzham_timer.cpp"
#"lzham_timer.h"
#"lzham_win32_threading.cpp"
#"lzham_win32_threading.h"

"lzma_7zBuf.cpp"
"lzma_7zBuf.h"
"lzma_7zBuf2.cpp"
"lzma_7zCrc.cpp"
"lzma_7zCrc.h"
"lzma_7zFile.cpp"
"lzma_7zFile.h"
"lzma_7zStream.cpp"
"lzma_Alloc.h"
"lzma_Alloc.cpp"
"lzma_Bcj2.h"
"lzma_Bcj2.cpp"
"lzma_Bra.cpp"
"lzma_Bra.h"
"lzma_Bra86.cpp"
"lzma_BraIA64.cpp"
"lzma_LzFind.cpp"
"lzma_LzFind.h"

"$<$<PLATFORM_ID:Windows>:lzma_LzFindMt.cpp>"
"lzma_LzFindMt.h"

"lzma_LzmaDec.cpp"
"lzma_LzmaDec.h"
"lzma_LzmaEnc.cpp"
"lzma_LzmaEnc.h"
"lzma_LzmaLib.cpp"
"lzma_LzmaLib.h"
"$<$<PLATFORM_ID:Windows>:lzma_Threads.cpp>"
"$<$<PLATFORM_ID:Windows>:lzma_Threads.h>"

# Misc lzma headers:
"lzma_7zVersion.h"
"lzma_LzHash.h"

"lzma_CpuArch.h"
"lzma_MyVersion.h"
"lzma_Types.h"
)

add_library(crnlib STATIC
"crnlib.cpp"
"crn_arealist.cpp"
"crn_arealist.h"
"crn_assert.cpp"
"crn_assert.h"
"crn_atomics.h"
"crn_buffer_stream.h"
"crn_cfile_stream.h"
"crn_checksum.cpp"
"crn_checksum.h"
"crn_clusterizer.h"
"crn_color.h"
"crn_command_line_params.cpp"
"crn_command_line_params.h"
"crn_comp.cpp"
"crn_comp.h"

# Console
"crn_colorized_console.cpp"
"crn_colorized_console.h"
"crn_console.cpp"
"crn_console.h"
"crn_core.cpp"
"crn_core.h"
"crn_data_stream.cpp"
"crn_data_stream.h"
"crn_data_stream_serializer.h"
"crn_dds_comp.cpp"
"crn_dds_comp.h"
"crn_decomp.cpp"
"crn_dxt.cpp"
"crn_dxt.h"
"crn_dxt1.cpp"
"crn_dxt1.h"
"crn_dxt5a.cpp"
"crn_dxt5a.h"
"crn_dxt_endpoint_refiner.cpp"
"crn_dxt_endpoint_refiner.h"
"crn_dxt_fast.cpp"
"crn_dxt_fast.h"
"crn_dxt_hc.cpp"
"crn_dxt_hc.h"
"crn_dxt_hc_common.cpp"
"crn_dxt_hc_common.h"
"crn_dxt_image.cpp"
"crn_dxt_image.h"
"crn_dynamic_stream.h"
"crn_dynamic_string.cpp"
"crn_dynamic_string.h"
"crn_etc.cpp"
"crn_etc.h"
"crn_file_utils.cpp"
"crn_file_utils.h"
"crn_find_files.cpp"
"crn_find_files.h"
"crn_freeimage_image_utils.h"
"crn_hash.cpp"
"crn_hash.h"
"crn_hash_map.cpp"
"crn_hash_map.h"
"crn_helpers.h"
"crn_huffman_codes.cpp"
"crn_huffman_codes.h"
"crn_image.h"
"crn_image_utils.cpp"
"crn_image_utils.h"
"crn_intersect.h"
"crn_jpgd.cpp"
"crn_jpgd.h"
"crn_jpge.cpp"
"crn_jpge.h"
"crn_ktx_texture.cpp"
"crn_ktx_texture.h"
"crn_lzma_codec.cpp"
"crn_lzma_codec.h"
"crn_math.cpp"
"crn_math.h"
"crn_matrix.h"
"crn_mem.cpp"
"crn_mem.h"
"crn_miniz.cpp"
"crn_miniz.h"
"crn_mipmapped_texture.cpp"
"crn_mipmapped_texture.h"
"crn_packed_uint.h"
"crn_pixel_format.cpp"
"crn_pixel_format.h"
"crn_platform.cpp"
"crn_platform.h"
"crn_prefix_coding.cpp"
"crn_prefix_coding.h"
"crn_qdxt1.cpp"
"crn_qdxt1.h"
"crn_qdxt5.cpp"
"crn_qdxt5.h"
"crn_radix_sort.h"
"crn_rand.cpp"
"crn_rand.h"
"crn_ray.h"
"crn_rect.h"
"crn_resampler.cpp"
"crn_resampler.h"
"crn_resample_filters.cpp"
"crn_resample_filters.h"
"crn_rg_etc1.cpp"
"crn_rg_etc1.h"
"crn_ryg_dxt.cpp"
"crn_ryg_dxt.hpp"
"crn_ryg_types.hpp"
"crn_sparse_array.h"
"crn_sparse_bit_array.cpp"
"crn_sparse_bit_array.h"
"crn_stb_image.cpp"
"crn_strutils.cpp"
"crn_strutils.h"
"crn_symbol_codec.cpp"
"crn_symbol_codec.h"
"crn_texture_comp.cpp"
"crn_texture_comp.h"
"crn_texture_conversion.cpp"
"crn_texture_conversion.h"
"crn_texture_file_types.cpp"
"crn_texture_file_types.h"
"crn_threaded_clusterizer.h"
"crn_threaded_resampler.cpp"
"crn_threaded_resampler.h"

# Threading
"crn_threading.h"
"crn_threading_null.h"
"crn_threading_pthreads.cpp"
"crn_threading_pthreads.h"
"$<$<PLATFORM_ID:Windows>:crn_threading_win32.cpp>"
"crn_threading_win32.h"

"crn_timer.cpp"
"crn_timer.h"
"crn_traits.h"
"crn_tree_clusterizer.h"
"crn_types.h"
"crn_utils.cpp"
"crn_utils.h"
"crn_value.cpp"
"crn_value.h"
"crn_vec.h"
"crn_vector.cpp"
"crn_vector.h"
"crn_vector2d.h"
"crn_vec_interval.h"
"crn_winhdr.h"
"crn_zeng.cpp"
"crn_zeng.h"

)

target_include_directories(crnlib
PUBLIC
"${CMAKE_CURRENT_SOURCE_DIR}"
)

target_link_libraries(crnlib
crn_lzhmalib
)
9 changes: 9 additions & 0 deletions crunch/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
add_executable(crunch
"corpus_gen.cpp"
"corpus_gen.h"
"corpus_test.cpp"
"corpus_test.h"
"crunch.cpp"
)

target_link_libraries(crunch crnlib)
9 changes: 9 additions & 0 deletions example1/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
add_executable(crn_example1
"example1.cpp"
"stb_image.h"
)
target_link_libraries(crn_example1 crnlib)

if (CMAKE_VERSION VERSION_GREATER 3.12)
set_property(TARGET crn_example1 PROPERTY CXX_STANDARD 20)
endif()
12 changes: 9 additions & 3 deletions example1/example1.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -14,17 +14,23 @@
// .DDS file format definitions.
#include "dds_defs.h"

// stb_image, for loading/saving image files.
// stb_image, for loading image files.
#ifdef _MSC_VER
#pragma warning (disable: 4244) // conversion from 'int' to 'uint8', possible loss of data
#pragma warning (disable: 4100) // unreferenced formal parameter
#endif
#define STB_IMAGE_IMPLEMENTATION
#include "stb_image.h"

// stb_image_write for image saving.
#define STB_IMAGE_WRITE_IMPLEMENTATION
#include "stb_image_write.h"

// windows.h is only needed here for GetSystemInfo().
#define WIN32_LEAN_AND_MEAN
#define NOMINMAX
#include "windows.h"
#include <windows.h>


using namespace crnlib;

Expand Down Expand Up @@ -271,7 +277,7 @@ int main(int argc, char *argv[])
}
else
{
uint f;
crn_uint32 f;
for (f = 0; f < cCRNFmtTotal; f++)
{
if (!_stricmp(argv[i], crn_get_format_string(static_cast<crn_format>(f))))
Expand Down
Loading