diff --git a/build/cmake/CMakeLists.txt b/build/cmake/CMakeLists.txt index 56ae67bb..c9dab0d5 100644 --- a/build/cmake/CMakeLists.txt +++ b/build/cmake/CMakeLists.txt @@ -7,107 +7,107 @@ # in the COPYING file in the root directory of this source tree). # ################################################################ -CMAKE_MINIMUM_REQUIRED(VERSION 2.8.9) +cmake_minimum_required(VERSION 2.8.9) -PROJECT(zstd) -SET(ZSTD_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../..") +project(zstd) +set(ZSTD_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../..") if (NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) message(STATUS "No build type selected, defaulting to Release") set(CMAKE_BUILD_TYPE "Release") endif() -LIST(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules") -INCLUDE(GNUInstallDirs) +list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules") +include(GNUInstallDirs) #----------------------------------------------------------------------------- # Add extra compilation flags #----------------------------------------------------------------------------- -INCLUDE(AddZstdCompilationFlags) +include(AddZstdCompilationFlags) ADD_ZSTD_COMPILATION_FLAGS() # Always hide XXHash symbols -ADD_DEFINITIONS(-DXXH_NAMESPACE=ZSTD_) +add_definitions(-DXXH_NAMESPACE=ZSTD_) #----------------------------------------------------------------------------- # Installation variables #----------------------------------------------------------------------------- -MESSAGE(STATUS "CMAKE_INSTALL_PREFIX: ${CMAKE_INSTALL_PREFIX}") -MESSAGE(STATUS "CMAKE_INSTALL_LIBDIR: ${CMAKE_INSTALL_LIBDIR}") +message(STATUS "CMAKE_INSTALL_PREFIX: ${CMAKE_INSTALL_PREFIX}") +message(STATUS "CMAKE_INSTALL_LIBDIR: ${CMAKE_INSTALL_LIBDIR}") #----------------------------------------------------------------------------- # Options #----------------------------------------------------------------------------- # Legacy support -OPTION(ZSTD_LEGACY_SUPPORT "LEGACY SUPPORT" OFF) +option(ZSTD_LEGACY_SUPPORT "LEGACY SUPPORT" OFF) -IF (ZSTD_LEGACY_SUPPORT) - MESSAGE(STATUS "ZSTD_LEGACY_SUPPORT defined!") - ADD_DEFINITIONS(-DZSTD_LEGACY_SUPPORT=4) -ELSE (ZSTD_LEGACY_SUPPORT) - MESSAGE(STATUS "ZSTD_LEGACY_SUPPORT not defined!") - ADD_DEFINITIONS(-DZSTD_LEGACY_SUPPORT=0) -ENDIF (ZSTD_LEGACY_SUPPORT) +if (ZSTD_LEGACY_SUPPORT) + message(STATUS "ZSTD_LEGACY_SUPPORT defined!") + add_definitions(-DZSTD_LEGACY_SUPPORT=4) +else () + message(STATUS "ZSTD_LEGACY_SUPPORT not defined!") + add_definitions(-DZSTD_LEGACY_SUPPORT=0) +endif () # Multi-threading support -OPTION(ZSTD_MULTITHREAD_SUPPORT "MULTITHREADING SUPPORT" ON) +option(ZSTD_MULTITHREAD_SUPPORT "MULTITHREADING SUPPORT" ON) -IF (ZSTD_MULTITHREAD_SUPPORT) - MESSAGE(STATUS "ZSTD_MULTITHREAD_SUPPORT is enabled") -ELSE (ZSTD_MULTITHREAD_SUPPORT) - MESSAGE(STATUS "ZSTD_MULTITHREAD_SUPPORT is disabled") -ENDIF (ZSTD_MULTITHREAD_SUPPORT) +if (ZSTD_MULTITHREAD_SUPPORT) + message(STATUS "ZSTD_MULTITHREAD_SUPPORT is enabled") +else () + message(STATUS "ZSTD_MULTITHREAD_SUPPORT is disabled") +endif () -OPTION(ZSTD_BUILD_PROGRAMS "BUILD PROGRAMS" ON) -OPTION(ZSTD_BUILD_CONTRIB "BUILD CONTRIB" OFF) -OPTION(ZSTD_BUILD_TESTS "BUILD TESTS" OFF) +option(ZSTD_BUILD_PROGRAMS "BUILD PROGRAMS" ON) +option(ZSTD_BUILD_CONTRIB "BUILD CONTRIB" OFF) +option(ZSTD_BUILD_TESTS "BUILD TESTS" OFF) if (MSVC) - OPTION(ZSTD_USE_STATIC_RUNTIME "LINK TO STATIC RUN-TIME LIBRARIES" OFF) + option(ZSTD_USE_STATIC_RUNTIME "LINK TO STATIC RUN-TIME LIBRARIES" OFF) endif () #----------------------------------------------------------------------------- # External dependencies #----------------------------------------------------------------------------- -IF (ZSTD_MULTITHREAD_SUPPORT AND UNIX) - SET(THREADS_PREFER_PTHREAD_FLAG ON) - FIND_PACKAGE(Threads REQUIRED) - IF(CMAKE_USE_PTHREADS_INIT) - SET(THREADS_LIBS "${CMAKE_THREAD_LIBS_INIT}") - ELSE() - MESSAGE(SEND_ERROR "ZSTD currently does not support thread libraries other than pthreads") - ENDIF() -ENDIF (ZSTD_MULTITHREAD_SUPPORT AND UNIX) +if (ZSTD_MULTITHREAD_SUPPORT AND UNIX) + set(THREADS_PREFER_PTHREAD_FLAG ON) + find_package(Threads REQUIRED) + if(CMAKE_USE_PTHREADS_INIT) + set(THREADS_LIBS "${CMAKE_THREAD_LIBS_INIT}") + else() + message(SEND_ERROR "ZSTD currently does not support thread libraries other than pthreads") + endif() +endif () #----------------------------------------------------------------------------- # Add source directories #----------------------------------------------------------------------------- -ADD_SUBDIRECTORY(lib) +add_subdirectory(lib) -IF (ZSTD_BUILD_PROGRAMS) - IF (NOT ZSTD_BUILD_STATIC) - MESSAGE(SEND_ERROR "You need to build static library to build zstd CLI") - ENDIF (NOT ZSTD_BUILD_STATIC) +if (ZSTD_BUILD_PROGRAMS) + if (NOT ZSTD_BUILD_STATIC) + message(SEND_ERROR "You need to build static library to build zstd CLI") + endif () - ADD_SUBDIRECTORY(programs) -ENDIF (ZSTD_BUILD_PROGRAMS) + add_subdirectory(programs) +endif () -IF (ZSTD_BUILD_TESTS) - IF (NOT ZSTD_BUILD_STATIC) - MESSAGE(SEND_ERROR "You need to build static library to build tests") - ENDIF (NOT ZSTD_BUILD_STATIC) +if (ZSTD_BUILD_TESTS) + if (NOT ZSTD_BUILD_STATIC) + message(SEND_ERROR "You need to build static library to build tests") + endif () - ADD_SUBDIRECTORY(tests) -ENDIF (ZSTD_BUILD_TESTS) + add_subdirectory(tests) +endif () -IF (ZSTD_BUILD_CONTRIB) - ADD_SUBDIRECTORY(contrib) -ENDIF (ZSTD_BUILD_CONTRIB) +if (ZSTD_BUILD_CONTRIB) + add_subdirectory(contrib) +endif () #----------------------------------------------------------------------------- # Add clean-all target #----------------------------------------------------------------------------- -ADD_CUSTOM_TARGET(clean-all +add_custom_target(clean-all COMMAND ${CMAKE_BUILD_TOOL} clean COMMAND rm -rf ${CMAKE_BINARY_DIR}/ ) diff --git a/build/cmake/CMakeModules/AddZstdCompilationFlags.cmake b/build/cmake/CMakeModules/AddZstdCompilationFlags.cmake index a7dc08ea..5e65cedb 100644 --- a/build/cmake/CMakeModules/AddZstdCompilationFlags.cmake +++ b/build/cmake/CMakeModules/AddZstdCompilationFlags.cmake @@ -20,7 +20,7 @@ function(EnableCompilerFlag _flag _C _CXX) endif () endfunction() -MACRO(ADD_ZSTD_COMPILATION_FLAGS) +macro(ADD_ZSTD_COMPILATION_FLAGS) if (CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang" OR MINGW) #Not only UNIX but also WIN32 for MinGW #Set c++11 by default EnableCompilerFlag("-std=c++11" false true) @@ -46,22 +46,22 @@ MACRO(ADD_ZSTD_COMPILATION_FLAGS) endif () # Remove duplicates compilation flags - FOREACH (flag_var CMAKE_C_FLAGS CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_RELEASE + foreach (flag_var CMAKE_C_FLAGS CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_RELEASE CMAKE_C_FLAGS_MINSIZEREL CMAKE_C_FLAGS_RELWITHDEBINFO CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELWITHDEBINFO) separate_arguments(${flag_var}) list(REMOVE_DUPLICATES ${flag_var}) string(REPLACE ";" " " ${flag_var} "${${flag_var}}") - ENDFOREACH (flag_var) + endforeach () if (MSVC AND ZSTD_USE_STATIC_RUNTIME) - FOREACH (flag_var CMAKE_C_FLAGS CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_RELEASE + foreach (flag_var CMAKE_C_FLAGS CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_RELEASE CMAKE_C_FLAGS_MINSIZEREL CMAKE_C_FLAGS_RELWITHDEBINFO CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELWITHDEBINFO) - STRING(REGEX REPLACE "/MD" "/MT" ${flag_var} "${${flag_var}}") - ENDFOREACH (flag_var) + string(REGEX REPLACE "/MD" "/MT" ${flag_var} "${${flag_var}}") + endforeach () endif () -ENDMACRO(ADD_ZSTD_COMPILATION_FLAGS) +endmacro() diff --git a/build/cmake/CMakeModules/GetZstdLibraryVersion.cmake b/build/cmake/CMakeModules/GetZstdLibraryVersion.cmake index 8b6f394d..af07723a 100644 --- a/build/cmake/CMakeModules/GetZstdLibraryVersion.cmake +++ b/build/cmake/CMakeModules/GetZstdLibraryVersion.cmake @@ -1,9 +1,9 @@ function(GetZstdLibraryVersion _header _major _minor _release) # Read file content - FILE(READ ${_header} CONTENT) + file(READ ${_header} CONTENT) string(REGEX MATCH ".*define ZSTD_VERSION_MAJOR *([0-9]+).*define ZSTD_VERSION_MINOR *([0-9]+).*define ZSTD_VERSION_RELEASE *([0-9]+)" VERSION_REGEX "${CONTENT}") - SET(${_major} ${CMAKE_MATCH_1} PARENT_SCOPE) - SET(${_minor} ${CMAKE_MATCH_2} PARENT_SCOPE) - SET(${_release} ${CMAKE_MATCH_3} PARENT_SCOPE) + set(${_major} ${CMAKE_MATCH_1} PARENT_SCOPE) + set(${_minor} ${CMAKE_MATCH_2} PARENT_SCOPE) + set(${_release} ${CMAKE_MATCH_3} PARENT_SCOPE) endfunction() diff --git a/build/cmake/README.md b/build/cmake/README.md new file mode 100644 index 00000000..0c71a54a --- /dev/null +++ b/build/cmake/README.md @@ -0,0 +1,65 @@ +# Cmake contributions + +Contributions to the cmake build configurations are welcome. Please +use case sensitivity that matches modern (ie. cmake version 2.6 and above) +conventions of using lower-case for commands, and upper-case for +varibles. + +# CMake Style Recommendations + +## Indent all code correctly, i.e. the body of + + * if/else/endif + * foreach/endforeach + * while/endwhile + * macro/endmacro + * function/endfunction + +Use spaces for indenting, 2, 3 or 4 spaces preferably. Use the same amount of +spaces for indenting as is used in the rest of the file. Do not use tabs. + +## Upper/lower casing + +Most important: use consistent upper- or lowercasing within one file ! + +In general, the all-lowercase style is preferred. + +So, this is recommended: + +``` +add_executable(foo foo.c) +``` + +These forms are discouraged + +``` +ADD_EXECUTABLE(bar bar.c) +Add_Executable(hello hello.c) +aDd_ExEcUtAbLe(blub blub.c) +``` + +## End commands +To make the code easier to read, use empty commands for endforeach(), endif(), +endfunction(), endmacro() and endwhile(). Also, use empty else() commands. + +For example, do this: + +``` +if(FOOVAR) + some_command(...) +else() + another_command(...) +endif() +``` + +and not this: + +``` +if(BARVAR) + some_other_command(...) +endif(BARVAR) +``` + +## Other resources for best practices + +`https://cmake.org/cmake/help/latest/manual/cmake-developer.7.html#modules` diff --git a/build/cmake/contrib/CMakeLists.txt b/build/cmake/contrib/CMakeLists.txt index 8c7bc78a..f7631d08 100644 --- a/build/cmake/contrib/CMakeLists.txt +++ b/build/cmake/contrib/CMakeLists.txt @@ -7,7 +7,7 @@ # in the COPYING file in the root directory of this source tree). # ################################################################ -PROJECT(contrib) +project(contrib) -ADD_SUBDIRECTORY(pzstd) -ADD_SUBDIRECTORY(gen_html) +add_subdirectory(pzstd) +add_subdirectory(gen_html) diff --git a/build/cmake/contrib/gen_html/CMakeLists.txt b/build/cmake/contrib/gen_html/CMakeLists.txt index c4062d47..8fdd6113 100644 --- a/build/cmake/contrib/gen_html/CMakeLists.txt +++ b/build/cmake/contrib/gen_html/CMakeLists.txt @@ -7,24 +7,24 @@ # in the COPYING file in the root directory of this source tree). # ################################################################ -PROJECT(gen_html) -INCLUDE(GetZstdLibraryVersion) +project(gen_html) +include(GetZstdLibraryVersion) -SET(CMAKE_INCLUDE_CURRENT_DIR TRUE) +set(CMAKE_INCLUDE_CURRENT_DIR TRUE) # Define programs directory, where sources and header files are located -SET(LIBRARY_DIR ${ZSTD_SOURCE_DIR}/lib) -SET(PROGRAMS_DIR ${ZSTD_SOURCE_DIR}/programs) -SET(GENHTML_DIR ${ZSTD_SOURCE_DIR}/contrib/gen_html) -SET(GENHTML_BINARY ${PROJECT_BINARY_DIR}/gen_html${CMAKE_EXECUTABLE_SUFFIX}) -INCLUDE_DIRECTORIES(${PROGRAMS_DIR} ${LIBRARY_DIR} ${LIBRARY_DIR}/common ${GENHTML_DIR}) +set(LIBRARY_DIR ${ZSTD_SOURCE_DIR}/lib) +set(PROGRAMS_DIR ${ZSTD_SOURCE_DIR}/programs) +set(GENHTML_DIR ${ZSTD_SOURCE_DIR}/contrib/gen_html) +set(GENHTML_BINARY ${PROJECT_BINARY_DIR}/gen_html${CMAKE_EXECUTABLE_SUFFIX}) +include_directories(${PROGRAMS_DIR} ${LIBRARY_DIR} ${LIBRARY_DIR}/common ${GENHTML_DIR}) -ADD_EXECUTABLE(gen_html ${GENHTML_DIR}/gen_html.cpp) +add_executable(gen_html ${GENHTML_DIR}/gen_html.cpp) GetZstdLibraryVersion(${LIBRARY_DIR}/zstd.h VMAJOR VMINOR VRELEASE) -SET(LIBVERSION "${VMAJOR}.${VMINOR}.${VRELEASE}") -ADD_CUSTOM_TARGET(zstd_manual.html ALL +set(LIBVERSION "${VMAJOR}.${VMINOR}.${VRELEASE}") +add_custom_target(zstd_manual.html ALL ${GENHTML_BINARY} "${LIBVERSION}" "${LIBRARY_DIR}/zstd.h" "${PROJECT_BINARY_DIR}/zstd_manual.html" DEPENDS gen_html COMMENT "Update zstd manual") -INSTALL(FILES "${PROJECT_BINARY_DIR}/zstd_manual.html" DESTINATION "${CMAKE_INSTALL_DOCDIR}") +install(FILES "${PROJECT_BINARY_DIR}/zstd_manual.html" DESTINATION "${CMAKE_INSTALL_DOCDIR}") diff --git a/build/cmake/contrib/pzstd/CMakeLists.txt b/build/cmake/contrib/pzstd/CMakeLists.txt index 2edebf84..5c30a91b 100644 --- a/build/cmake/contrib/pzstd/CMakeLists.txt +++ b/build/cmake/contrib/pzstd/CMakeLists.txt @@ -7,26 +7,26 @@ # in the COPYING file in the root directory of this source tree). # ################################################################ -PROJECT(pzstd) +project(pzstd) -SET(CMAKE_INCLUDE_CURRENT_DIR TRUE) +set(CMAKE_INCLUDE_CURRENT_DIR TRUE) # Define programs directory, where sources and header files are located -SET(LIBRARY_DIR ${ZSTD_SOURCE_DIR}/lib) -SET(PROGRAMS_DIR ${ZSTD_SOURCE_DIR}/programs) -SET(PZSTD_DIR ${ZSTD_SOURCE_DIR}/contrib/pzstd) -INCLUDE_DIRECTORIES(${PROGRAMS_DIR} ${LIBRARY_DIR} ${LIBRARY_DIR}/common ${PZSTD_DIR}) +set(LIBRARY_DIR ${ZSTD_SOURCE_DIR}/lib) +set(PROGRAMS_DIR ${ZSTD_SOURCE_DIR}/programs) +set(PZSTD_DIR ${ZSTD_SOURCE_DIR}/contrib/pzstd) +include_directories(${PROGRAMS_DIR} ${LIBRARY_DIR} ${LIBRARY_DIR}/common ${PZSTD_DIR}) -ADD_EXECUTABLE(pzstd ${PROGRAMS_DIR}/util.c ${PZSTD_DIR}/main.cpp ${PZSTD_DIR}/Options.cpp ${PZSTD_DIR}/Pzstd.cpp ${PZSTD_DIR}/SkippableFrame.cpp) -SET_PROPERTY(TARGET pzstd APPEND PROPERTY COMPILE_DEFINITIONS "NDEBUG") -SET_PROPERTY(TARGET pzstd APPEND PROPERTY COMPILE_OPTIONS "-Wno-shadow") +add_executable(pzstd ${PROGRAMS_DIR}/util.c ${PZSTD_DIR}/main.cpp ${PZSTD_DIR}/Options.cpp ${PZSTD_DIR}/Pzstd.cpp ${PZSTD_DIR}/SkippableFrame.cpp) +set_property(TARGET pzstd APPEND PROPERTY COMPILE_DEFINITIONS "NDEBUG") +set_property(TARGET pzstd APPEND PROPERTY COMPILE_OPTIONS "-Wno-shadow") -SET(THREADS_PREFER_PTHREAD_FLAG ON) -FIND_PACKAGE(Threads REQUIRED) -IF (CMAKE_USE_PTHREADS_INIT) - TARGET_LINK_LIBRARIES(pzstd libzstd_shared ${CMAKE_THREAD_LIBS_INIT}) -ELSE() - MESSAGE(SEND_ERROR "ZSTD currently does not support thread libraries other than pthreads") -ENDIF() +set(THREADS_PREFER_PTHREAD_FLAG ON) +find_package(Threads REQUIRED) +if (CMAKE_USE_PTHREADS_INIT) + target_link_libraries(pzstd libzstd_shared ${CMAKE_THREAD_LIBS_INIT}) +else() + message(SEND_ERROR "ZSTD currently does not support thread libraries other than pthreads") +endif() -INSTALL(TARGETS pzstd RUNTIME DESTINATION "bin") +install(TARGETS pzstd RUNTIME DESTINATION "bin") diff --git a/build/cmake/lib/CMakeLists.txt b/build/cmake/lib/CMakeLists.txt index ef3389e2..6ed6c305 100644 --- a/build/cmake/lib/CMakeLists.txt +++ b/build/cmake/lib/CMakeLists.txt @@ -7,26 +7,26 @@ # in the COPYING file in the root directory of this source tree). # ################################################################ -PROJECT(libzstd) +project(libzstd) -SET(CMAKE_INCLUDE_CURRENT_DIR TRUE) -OPTION(ZSTD_BUILD_STATIC "BUILD STATIC LIBRARIES" ON) -OPTION(ZSTD_BUILD_SHARED "BUILD SHARED LIBRARIES" ON) +set(CMAKE_INCLUDE_CURRENT_DIR TRUE) +option(ZSTD_BUILD_STATIC "BUILD STATIC LIBRARIES" ON) +option(ZSTD_BUILD_SHARED "BUILD SHARED LIBRARIES" ON) -IF(NOT ZSTD_BUILD_SHARED AND NOT ZSTD_BUILD_STATIC) - MESSAGE(SEND_ERROR "You need to build at least one flavor of libzstd") -ENDIF() +if(NOT ZSTD_BUILD_SHARED AND NOT ZSTD_BUILD_STATIC) + message(SEND_ERROR "You need to build at least one flavor of libzstd") +endif() # Define library directory, where sources and header files are located -SET(LIBRARY_DIR ${ZSTD_SOURCE_DIR}/lib) -INCLUDE_DIRECTORIES(${LIBRARY_DIR} ${LIBRARY_DIR}/common) +set(LIBRARY_DIR ${ZSTD_SOURCE_DIR}/lib) +include_directories(${LIBRARY_DIR} ${LIBRARY_DIR}/common) # Parse version -INCLUDE(GetZstdLibraryVersion) +include(GetZstdLibraryVersion) GetZstdLibraryVersion(${LIBRARY_DIR}/zstd.h LIBVER_MAJOR LIBVER_MINOR LIBVER_RELEASE) -MESSAGE(STATUS "ZSTD VERSION ${LIBVER_MAJOR}.${LIBVER_MINOR}.${LIBVER_RELEASE}") +message(STATUS "ZSTD VERSION ${LIBVER_MAJOR}.${LIBVER_MINOR}.${LIBVER_RELEASE}") -SET(Sources +set(Sources ${LIBRARY_DIR}/common/entropy_common.c ${LIBRARY_DIR}/common/fse_decompress.c ${LIBRARY_DIR}/common/threading.c @@ -56,7 +56,7 @@ SET(Sources ${LIBRARY_DIR}/deprecated/zbuff_compress.c ${LIBRARY_DIR}/deprecated/zbuff_decompress.c) -SET(Headers +set(Headers ${LIBRARY_DIR}/zstd.h ${LIBRARY_DIR}/common/debug.h ${LIBRARY_DIR}/common/pool.h @@ -83,11 +83,11 @@ SET(Headers ${LIBRARY_DIR}/dictBuilder/cover.h ${LIBRARY_DIR}/deprecated/zbuff.h) -IF (ZSTD_LEGACY_SUPPORT) - SET(LIBRARY_LEGACY_DIR ${LIBRARY_DIR}/legacy) - INCLUDE_DIRECTORIES(${LIBRARY_LEGACY_DIR}) +if (ZSTD_LEGACY_SUPPORT) + set(LIBRARY_LEGACY_DIR ${LIBRARY_DIR}/legacy) + include_directories(${LIBRARY_LEGACY_DIR}) - SET(Sources ${Sources} + set(Sources ${Sources} ${LIBRARY_LEGACY_DIR}/zstd_v01.c ${LIBRARY_LEGACY_DIR}/zstd_v02.c ${LIBRARY_LEGACY_DIR}/zstd_v03.c @@ -96,7 +96,7 @@ IF (ZSTD_LEGACY_SUPPORT) ${LIBRARY_LEGACY_DIR}/zstd_v06.c ${LIBRARY_LEGACY_DIR}/zstd_v07.c) - SET(Headers ${Headers} + set(Headers ${Headers} ${LIBRARY_LEGACY_DIR}/zstd_legacy.h ${LIBRARY_LEGACY_DIR}/zstd_v01.h ${LIBRARY_LEGACY_DIR}/zstd_v02.h @@ -105,83 +105,83 @@ IF (ZSTD_LEGACY_SUPPORT) ${LIBRARY_LEGACY_DIR}/zstd_v05.h ${LIBRARY_LEGACY_DIR}/zstd_v06.h ${LIBRARY_LEGACY_DIR}/zstd_v07.h) -ENDIF (ZSTD_LEGACY_SUPPORT) +endif () -IF (MSVC) - SET(MSVC_RESOURCE_DIR ${ZSTD_SOURCE_DIR}/build/VS2010/libzstd-dll) - SET(PlatformDependResources ${MSVC_RESOURCE_DIR}/libzstd-dll.rc) -ENDIF (MSVC) +if (MSVC) + set(MSVC_RESOURCE_DIR ${ZSTD_SOURCE_DIR}/build/VS2010/libzstd-dll) + set(PlatformDependResources ${MSVC_RESOURCE_DIR}/libzstd-dll.rc) +endif () # Split project to static and shared libraries build -IF (ZSTD_BUILD_SHARED) - ADD_LIBRARY(libzstd_shared SHARED ${Sources} ${Headers} ${PlatformDependResources}) - IF (ZSTD_MULTITHREAD_SUPPORT) - SET_PROPERTY(TARGET libzstd_shared APPEND PROPERTY COMPILE_DEFINITIONS "ZSTD_MULTITHREAD") - IF (UNIX) - TARGET_LINK_LIBRARIES(libzstd_shared ${THREADS_LIBS}) - ENDIF () - ENDIF() -ENDIF (ZSTD_BUILD_SHARED) -IF (ZSTD_BUILD_STATIC) - ADD_LIBRARY(libzstd_static STATIC ${Sources} ${Headers}) - IF (ZSTD_MULTITHREAD_SUPPORT) - SET_PROPERTY(TARGET libzstd_static APPEND PROPERTY COMPILE_DEFINITIONS "ZSTD_MULTITHREAD") - IF (UNIX) - TARGET_LINK_LIBRARIES(libzstd_static ${THREADS_LIBS}) - ENDIF () - ENDIF () -ENDIF (ZSTD_BUILD_STATIC) +if (ZSTD_BUILD_SHARED) + add_library(libzstd_shared SHARED ${Sources} ${Headers} ${PlatformDependResources}) + if (ZSTD_MULTITHREAD_SUPPORT) + set_property(TARGET libzstd_shared APPEND PROPERTY COMPILE_DEFINITIONS "ZSTD_MULTITHREAD") + if (UNIX) + target_link_libraries(libzstd_shared ${THREADS_LIBS}) + endif () + endif() +endif () +if (ZSTD_BUILD_STATIC) + add_library(libzstd_static STATIC ${Sources} ${Headers}) + if (ZSTD_MULTITHREAD_SUPPORT) + set_property(TARGET libzstd_static APPEND PROPERTY COMPILE_DEFINITIONS "ZSTD_MULTITHREAD") + if (UNIX) + target_link_libraries(libzstd_static ${THREADS_LIBS}) + endif () + endif () +endif () # Add specific compile definitions for MSVC project -IF (MSVC) - IF (ZSTD_BUILD_SHARED) - SET_PROPERTY(TARGET libzstd_shared APPEND PROPERTY COMPILE_DEFINITIONS "ZSTD_DLL_EXPORT=1;ZSTD_HEAPMODE=0;_CONSOLE;_CRT_SECURE_NO_WARNINGS") - ENDIF (ZSTD_BUILD_SHARED) - IF (ZSTD_BUILD_STATIC) - SET_PROPERTY(TARGET libzstd_static APPEND PROPERTY COMPILE_DEFINITIONS "ZSTD_HEAPMODE=0;_CRT_SECURE_NO_WARNINGS") - ENDIF (ZSTD_BUILD_STATIC) -ENDIF (MSVC) +if (MSVC) + if (ZSTD_BUILD_SHARED) + set_property(TARGET libzstd_shared APPEND PROPERTY COMPILE_DEFINITIONS "ZSTD_DLL_EXPORT=1;ZSTD_HEAPMODE=0;_CONSOLE;_CRT_SECURE_NO_WARNINGS") + endif () + if (ZSTD_BUILD_STATIC) + set_property(TARGET libzstd_static APPEND PROPERTY COMPILE_DEFINITIONS "ZSTD_HEAPMODE=0;_CRT_SECURE_NO_WARNINGS") + endif () +endif () # With MSVC static library needs to be renamed to avoid conflict with import library -IF (MSVC) - SET(STATIC_LIBRARY_BASE_NAME zstd_static) -ELSE () - SET(STATIC_LIBRARY_BASE_NAME zstd) -ENDIF (MSVC) +if (MSVC) + set(STATIC_LIBRARY_BASE_NAME zstd_static) +else () + set(STATIC_LIBRARY_BASE_NAME zstd) +endif () # Define static and shared library names -IF (ZSTD_BUILD_SHARED) - SET_TARGET_PROPERTIES( +if (ZSTD_BUILD_SHARED) + set_target_properties( libzstd_shared PROPERTIES OUTPUT_NAME zstd SOVERSION ${LIBVER_MAJOR}.${LIBVER_MINOR}.${LIBVER_RELEASE}) -ENDIF (ZSTD_BUILD_SHARED) +endif () -IF (ZSTD_BUILD_STATIC) - SET_TARGET_PROPERTIES( +if (ZSTD_BUILD_STATIC) + set_target_properties( libzstd_static PROPERTIES OUTPUT_NAME ${STATIC_LIBRARY_BASE_NAME}) -ENDIF (ZSTD_BUILD_STATIC) +endif () -IF (UNIX) +if (UNIX) # pkg-config - SET(PREFIX "${CMAKE_INSTALL_PREFIX}") - SET(LIBDIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}") - SET(INCLUDEDIR "${CMAKE_INSTALL_PREFIX}/include") - SET(VERSION "${LIBVER_MAJOR}.${LIBVER_MINOR}.${LIBVER_RELEASE}") - ADD_CUSTOM_TARGET(libzstd.pc ALL + set(PREFIX "${CMAKE_INSTALL_PREFIX}") + set(LIBDIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}") + set(INCLUDEDIR "${CMAKE_INSTALL_PREFIX}/include") + set(VERSION "${LIBVER_MAJOR}.${LIBVER_MINOR}.${LIBVER_RELEASE}") + add_custom_target(libzstd.pc ALL ${CMAKE_COMMAND} -DIN="${LIBRARY_DIR}/libzstd.pc.in" -DOUT="libzstd.pc" -DPREFIX="${PREFIX}" -DLIBDIR="${LIBDIR}" -DINCLUDEDIR="${INCLUDEDIR}" -DVERSION="${VERSION}" -P "${CMAKE_CURRENT_SOURCE_DIR}/pkgconfig.cmake" COMMENT "Creating pkg-config file") - INSTALL(FILES "${CMAKE_CURRENT_BINARY_DIR}/libzstd.pc" DESTINATION "${LIBDIR}/pkgconfig") -ENDIF (UNIX) + install(FILES "${CMAKE_CURRENT_BINARY_DIR}/libzstd.pc" DESTINATION "${LIBDIR}/pkgconfig") +endif () # install target -INSTALL(FILES +install(FILES ${LIBRARY_DIR}/zstd.h ${LIBRARY_DIR}/deprecated/zbuff.h ${LIBRARY_DIR}/dictBuilder/zdict.h @@ -189,20 +189,20 @@ INSTALL(FILES ${LIBRARY_DIR}/common/zstd_errors.h DESTINATION "include") -IF (ZSTD_BUILD_SHARED) - INSTALL(TARGETS libzstd_shared RUNTIME DESTINATION "bin" +if (ZSTD_BUILD_SHARED) + install(TARGETS libzstd_shared RUNTIME DESTINATION "bin" LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}") -ENDIF() -IF (ZSTD_BUILD_STATIC) - INSTALL(TARGETS libzstd_static ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}") -ENDIF (ZSTD_BUILD_STATIC) +endif() +if (ZSTD_BUILD_STATIC) + install(TARGETS libzstd_static ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}") +endif () # uninstall target -CONFIGURE_FILE( +configure_file( "${CMAKE_CURRENT_SOURCE_DIR}/cmake_uninstall.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake" IMMEDIATE @ONLY) -ADD_CUSTOM_TARGET(uninstall +add_custom_target(uninstall COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake) diff --git a/build/cmake/lib/cmake_uninstall.cmake.in b/build/cmake/lib/cmake_uninstall.cmake.in index e3774dc1..9f1d045d 100644 --- a/build/cmake/lib/cmake_uninstall.cmake.in +++ b/build/cmake/lib/cmake_uninstall.cmake.in @@ -1,7 +1,7 @@ if(NOT EXISTS "@CMAKE_BINARY_DIR@/install_manifest.txt") message(FATAL_ERROR "Cannot find install manifest: @CMAKE_BINARY_DIR@/install_manifest.txt") -endif(NOT EXISTS "@CMAKE_BINARY_DIR@/install_manifest.txt") +endif() file(READ "@CMAKE_BINARY_DIR@/install_manifest.txt" files) string(REGEX REPLACE "\n" ";" files "${files}") @@ -15,8 +15,8 @@ foreach(file ${files}) ) if(NOT "${rm_retval}" STREQUAL 0) message(FATAL_ERROR "Problem when removing $ENV{DESTDIR}${file}") - endif(NOT "${rm_retval}" STREQUAL 0) - else(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}") + endif() + else() message(STATUS "File $ENV{DESTDIR}${file} does not exist.") - endif(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}") -endforeach(file) + endif() +endforeach() diff --git a/build/cmake/lib/pkgconfig.cmake b/build/cmake/lib/pkgconfig.cmake index 5434ff75..8f805a19 100644 --- a/build/cmake/lib/pkgconfig.cmake +++ b/build/cmake/lib/pkgconfig.cmake @@ -1 +1 @@ -CONFIGURE_FILE("${IN}" "${OUT}" @ONLY) +configure_file("${IN}" "${OUT}" @ONLY) diff --git a/build/cmake/programs/CMakeLists.txt b/build/cmake/programs/CMakeLists.txt index a54d49d9..4c5146f8 100644 --- a/build/cmake/programs/CMakeLists.txt +++ b/build/cmake/programs/CMakeLists.txt @@ -7,103 +7,103 @@ # in the COPYING file in the root directory of this source tree). # ################################################################ -PROJECT(programs) +project(programs) -SET(CMAKE_INCLUDE_CURRENT_DIR TRUE) +set(CMAKE_INCLUDE_CURRENT_DIR TRUE) # Define programs directory, where sources and header files are located -SET(LIBRARY_DIR ${ZSTD_SOURCE_DIR}/lib) -SET(PROGRAMS_DIR ${ZSTD_SOURCE_DIR}/programs) -INCLUDE_DIRECTORIES(${PROGRAMS_DIR} ${LIBRARY_DIR} ${LIBRARY_DIR}/common ${LIBRARY_DIR}/compress ${LIBRARY_DIR}/dictBuilder) +set(LIBRARY_DIR ${ZSTD_SOURCE_DIR}/lib) +set(PROGRAMS_DIR ${ZSTD_SOURCE_DIR}/programs) +include_directories(${PROGRAMS_DIR} ${LIBRARY_DIR} ${LIBRARY_DIR}/common ${LIBRARY_DIR}/compress ${LIBRARY_DIR}/dictBuilder) -IF (ZSTD_LEGACY_SUPPORT) - SET(PROGRAMS_LEGACY_DIR ${PROGRAMS_DIR}/legacy) - INCLUDE_DIRECTORIES(${PROGRAMS_LEGACY_DIR} ${LIBRARY_DIR}/legacy) -ENDIF (ZSTD_LEGACY_SUPPORT) +if (ZSTD_LEGACY_SUPPORT) + set(PROGRAMS_LEGACY_DIR ${PROGRAMS_DIR}/legacy) + include_directories(${PROGRAMS_LEGACY_DIR} ${LIBRARY_DIR}/legacy) +endif () -IF (MSVC) - SET(MSVC_RESOURCE_DIR ${ZSTD_SOURCE_DIR}/build/VS2010/zstd) - SET(PlatformDependResources ${MSVC_RESOURCE_DIR}/zstd.rc) -ENDIF (MSVC) +if (MSVC) + set(MSVC_RESOURCE_DIR ${ZSTD_SOURCE_DIR}/build/VS2010/zstd) + set(PlatformDependResources ${MSVC_RESOURCE_DIR}/zstd.rc) +endif () -ADD_EXECUTABLE(zstd ${PROGRAMS_DIR}/zstdcli.c ${PROGRAMS_DIR}/util.c ${PROGRAMS_DIR}/fileio.c ${PROGRAMS_DIR}/benchfn.c ${PROGRAMS_DIR}/benchzstd.c ${PROGRAMS_DIR}/datagen.c ${PROGRAMS_DIR}/dibio.c ${PlatformDependResources}) -TARGET_LINK_LIBRARIES(zstd libzstd_static) -IF (CMAKE_SYSTEM_NAME MATCHES "(Solaris|SunOS)") - TARGET_LINK_LIBRARIES(zstd rt) -ENDIF (CMAKE_SYSTEM_NAME MATCHES "(Solaris|SunOS)") -INSTALL(TARGETS zstd RUNTIME DESTINATION "bin") +add_executable(zstd ${PROGRAMS_DIR}/zstdcli.c ${PROGRAMS_DIR}/util.c ${PROGRAMS_DIR}/fileio.c ${PROGRAMS_DIR}/benchfn.c ${PROGRAMS_DIR}/benchzstd.c ${PROGRAMS_DIR}/datagen.c ${PROGRAMS_DIR}/dibio.c ${PlatformDependResources}) +target_link_libraries(zstd libzstd_static) +if (CMAKE_SYSTEM_NAME MATCHES "(Solaris|SunOS)") + target_link_libraries(zstd rt) +endif () +install(TARGETS zstd RUNTIME DESTINATION "bin") -IF (UNIX) - ADD_CUSTOM_TARGET(zstdcat ALL ${CMAKE_COMMAND} -E create_symlink zstd zstdcat DEPENDS zstd COMMENT "Creating zstdcat symlink") - ADD_CUSTOM_TARGET(unzstd ALL ${CMAKE_COMMAND} -E create_symlink zstd unzstd DEPENDS zstd COMMENT "Creating unzstd symlink") - INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/zstdcat DESTINATION "bin") - INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/unzstd DESTINATION "bin") +if (UNIX) + add_custom_target(zstdcat ALL ${CMAKE_COMMAND} -E create_symlink zstd zstdcat DEPENDS zstd COMMENT "Creating zstdcat symlink") + add_custom_target(unzstd ALL ${CMAKE_COMMAND} -E create_symlink zstd unzstd DEPENDS zstd COMMENT "Creating unzstd symlink") + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/zstdcat DESTINATION "bin") + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/unzstd DESTINATION "bin") - ADD_CUSTOM_TARGET(zstd.1 ALL + add_custom_target(zstd.1 ALL ${CMAKE_COMMAND} -E copy ${PROGRAMS_DIR}/zstd.1 . COMMENT "Copying manpage zstd.1") - ADD_CUSTOM_TARGET(zstdgrep.1 ALL + add_custom_target(zstdgrep.1 ALL ${CMAKE_COMMAND} -E copy ${PROGRAMS_DIR}/zstdgrep.1 . COMMENT "Copying manpage zstdgrep.1") - ADD_CUSTOM_TARGET(zstdless.1 ALL + add_custom_target(zstdless.1 ALL ${CMAKE_COMMAND} -E copy ${PROGRAMS_DIR}/zstdless.1 . COMMENT "Copying manpage zstdless.1") - ADD_CUSTOM_TARGET(zstdcat.1 ALL ${CMAKE_COMMAND} -E create_symlink zstd.1 zstdcat.1 DEPENDS zstd.1 COMMENT "Creating zstdcat.1 symlink") - ADD_CUSTOM_TARGET(unzstd.1 ALL ${CMAKE_COMMAND} -E create_symlink zstd.1 unzstd.1 DEPENDS zstd.1 COMMENT "Creating unzstd.1 symlink") + add_custom_target(zstdcat.1 ALL ${CMAKE_COMMAND} -E create_symlink zstd.1 zstdcat.1 DEPENDS zstd.1 COMMENT "Creating zstdcat.1 symlink") + add_custom_target(unzstd.1 ALL ${CMAKE_COMMAND} -E create_symlink zstd.1 unzstd.1 DEPENDS zstd.1 COMMENT "Creating unzstd.1 symlink") # Define MAN_INSTALL_DIR if necessary - IF (MAN_INSTALL_DIR) - ELSE (MAN_INSTALL_DIR) - SET(MAN_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/share/man/man1) - ENDIF (MAN_INSTALL_DIR) + if (MAN_INSTALL_DIR) + else () + set(MAN_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/share/man/man1) + endif () - INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/zstd.1 DESTINATION "${MAN_INSTALL_DIR}") - INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/zstdcat.1 DESTINATION "${MAN_INSTALL_DIR}") - INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/unzstd.1 DESTINATION "${MAN_INSTALL_DIR}") - INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/zstdgrep.1 DESTINATION "${MAN_INSTALL_DIR}") - INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/zstdless.1 DESTINATION "${MAN_INSTALL_DIR}") + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/zstd.1 DESTINATION "${MAN_INSTALL_DIR}") + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/zstdcat.1 DESTINATION "${MAN_INSTALL_DIR}") + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/unzstd.1 DESTINATION "${MAN_INSTALL_DIR}") + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/zstdgrep.1 DESTINATION "${MAN_INSTALL_DIR}") + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/zstdless.1 DESTINATION "${MAN_INSTALL_DIR}") - ADD_EXECUTABLE(zstd-frugal ${PROGRAMS_DIR}/zstdcli.c ${PROGRAMS_DIR}/util.c ${PROGRAMS_DIR}/fileio.c) - TARGET_LINK_LIBRARIES(zstd-frugal libzstd_static) - SET_PROPERTY(TARGET zstd-frugal APPEND PROPERTY COMPILE_DEFINITIONS "ZSTD_NOBENCH;ZSTD_NODICT") -ENDIF (UNIX) + add_executable(zstd-frugal ${PROGRAMS_DIR}/zstdcli.c ${PROGRAMS_DIR}/util.c ${PROGRAMS_DIR}/fileio.c) + target_link_libraries(zstd-frugal libzstd_static) + set_property(TARGET zstd-frugal APPEND PROPERTY COMPILE_DEFINITIONS "ZSTD_NOBENCH;ZSTD_NODICT") +endif () # Add multi-threading support definitions -IF (ZSTD_MULTITHREAD_SUPPORT) - SET_PROPERTY(TARGET zstd APPEND PROPERTY COMPILE_DEFINITIONS "ZSTD_MULTITHREAD") +if (ZSTD_MULTITHREAD_SUPPORT) + set_property(TARGET zstd APPEND PROPERTY COMPILE_DEFINITIONS "ZSTD_MULTITHREAD") - IF (UNIX) - TARGET_LINK_LIBRARIES(zstd ${THREADS_LIBS}) + if (UNIX) + target_link_libraries(zstd ${THREADS_LIBS}) - ADD_CUSTOM_TARGET(zstdmt ALL ${CMAKE_COMMAND} -E create_symlink zstd zstdmt DEPENDS zstd COMMENT "Creating zstdmt symlink") - INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/zstdmt DESTINATION "bin") - ENDIF (UNIX) -ENDIF (ZSTD_MULTITHREAD_SUPPORT) + add_custom_target(zstdmt ALL ${CMAKE_COMMAND} -E create_symlink zstd zstdmt DEPENDS zstd COMMENT "Creating zstdmt symlink") + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/zstdmt DESTINATION "bin") + endif () +endif () -OPTION(ZSTD_ZLIB_SUPPORT "ZLIB SUPPORT" OFF) -OPTION(ZSTD_LZMA_SUPPORT "LZMA SUPPORT" OFF) +option(ZSTD_ZLIB_SUPPORT "ZLIB SUPPORT" OFF) +option(ZSTD_LZMA_SUPPORT "LZMA SUPPORT" OFF) -IF (ZSTD_ZLIB_SUPPORT) - FIND_PACKAGE(ZLIB REQUIRED) +if (ZSTD_ZLIB_SUPPORT) + find_package(ZLIB REQUIRED) - IF (ZLIB_FOUND) - INCLUDE_DIRECTORIES(${ZLIB_INCLUDE_DIRS}) - TARGET_LINK_LIBRARIES(zstd ${ZLIB_LIBRARIES}) - SET_PROPERTY(TARGET zstd APPEND PROPERTY COMPILE_DEFINITIONS "ZSTD_GZCOMPRESS;ZSTD_GZDECOMPRESS") - ELSE () - MESSAGE(SEND_ERROR "zlib library is missing") - ENDIF () -ENDIF () + if (ZLIB_FOUND) + include_directories(${ZLIB_INCLUDE_DIRS}) + target_link_libraries(zstd ${ZLIB_LIBRARIES}) + set_property(TARGET zstd APPEND PROPERTY COMPILE_DEFINITIONS "ZSTD_GZCOMPRESS;ZSTD_GZDECOMPRESS") + else () + message(SEND_ERROR "zlib library is missing") + endif () +endif () -IF (ZSTD_LZMA_SUPPORT) - FIND_PACKAGE(LibLZMA REQUIRED) +if (ZSTD_LZMA_SUPPORT) + find_package(LibLZMA REQUIRED) - IF (LIBLZMA_FOUND) - INCLUDE_DIRECTORIES(${LIBLZMA_INCLUDE_DIRS}) - TARGET_LINK_LIBRARIES(zstd ${LIBLZMA_LIBRARIES}) - SET_PROPERTY(TARGET zstd APPEND PROPERTY COMPILE_DEFINITIONS "ZSTD_LZMACOMPRESS;ZSTD_LZMADECOMPRESS") - ELSE () - MESSAGE(SEND_ERROR "lzma library is missing") - ENDIF () -ENDIF () + if (LIBLZMA_FOUND) + include_directories(${LIBLZMA_INCLUDE_DIRS}) + target_link_libraries(zstd ${LIBLZMA_LIBRARIES}) + set_property(TARGET zstd APPEND PROPERTY COMPILE_DEFINITIONS "ZSTD_LZMACOMPRESS;ZSTD_LZMADECOMPRESS") + else () + message(SEND_ERROR "lzma library is missing") + endif () +endif () diff --git a/build/cmake/tests/CMakeLists.txt b/build/cmake/tests/CMakeLists.txt index d5e48277..69316e28 100644 --- a/build/cmake/tests/CMakeLists.txt +++ b/build/cmake/tests/CMakeLists.txt @@ -30,26 +30,26 @@ # - zstd homepage : http://www.zstd.net/ # ################################################################ -PROJECT(tests) +project(tests) -SET(CMAKE_INCLUDE_CURRENT_DIR TRUE) +set(CMAKE_INCLUDE_CURRENT_DIR TRUE) # Define programs directory, where sources and header files are located -SET(LIBRARY_DIR ${ZSTD_SOURCE_DIR}/lib) -SET(PROGRAMS_DIR ${ZSTD_SOURCE_DIR}/programs) -SET(TESTS_DIR ${ZSTD_SOURCE_DIR}/tests) -INCLUDE_DIRECTORIES(${TESTS_DIR} ${PROGRAMS_DIR} ${LIBRARY_DIR} ${LIBRARY_DIR}/common ${LIBRARY_DIR}/compress ${LIBRARY_DIR}/dictBuilder) +set(LIBRARY_DIR ${ZSTD_SOURCE_DIR}/lib) +set(PROGRAMS_DIR ${ZSTD_SOURCE_DIR}/programs) +set(TESTS_DIR ${ZSTD_SOURCE_DIR}/tests) +include_directories(${TESTS_DIR} ${PROGRAMS_DIR} ${LIBRARY_DIR} ${LIBRARY_DIR}/common ${LIBRARY_DIR}/compress ${LIBRARY_DIR}/dictBuilder) -ADD_EXECUTABLE(datagen ${PROGRAMS_DIR}/datagen.c ${TESTS_DIR}/datagencli.c) -TARGET_LINK_LIBRARIES(datagen libzstd_static) +add_executable(datagen ${PROGRAMS_DIR}/datagen.c ${TESTS_DIR}/datagencli.c) +target_link_libraries(datagen libzstd_static) -ADD_EXECUTABLE(fullbench ${PROGRAMS_DIR}/datagen.c ${PROGRAMS_DIR}/util.c ${PROGRAMS_DIR}/benchfn.c ${PROGRAMS_DIR}/benchzstd.c ${TESTS_DIR}/fullbench.c) -TARGET_LINK_LIBRARIES(fullbench libzstd_static) +add_executable(fullbench ${PROGRAMS_DIR}/datagen.c ${PROGRAMS_DIR}/util.c ${PROGRAMS_DIR}/benchfn.c ${PROGRAMS_DIR}/benchzstd.c ${TESTS_DIR}/fullbench.c) +target_link_libraries(fullbench libzstd_static) -ADD_EXECUTABLE(fuzzer ${PROGRAMS_DIR}/datagen.c ${PROGRAMS_DIR}/util.c ${TESTS_DIR}/fuzzer.c) -TARGET_LINK_LIBRARIES(fuzzer libzstd_static) +add_executable(fuzzer ${PROGRAMS_DIR}/datagen.c ${PROGRAMS_DIR}/util.c ${TESTS_DIR}/fuzzer.c) +target_link_libraries(fuzzer libzstd_static) -IF (UNIX) - ADD_EXECUTABLE(paramgrill ${PROGRAMS_DIR}/benchfn.c ${PROGRAMS_DIR}/benchzstd.c ${PROGRAMS_DIR}/datagen.c ${PROGRAMS_DIR}/util.c ${TESTS_DIR}/paramgrill.c) - TARGET_LINK_LIBRARIES(paramgrill libzstd_static m) #m is math library -ENDIF (UNIX) +if (UNIX) + add_executable(paramgrill ${PROGRAMS_DIR}/benchfn.c ${PROGRAMS_DIR}/benchzstd.c ${PROGRAMS_DIR}/datagen.c ${PROGRAMS_DIR}/util.c ${TESTS_DIR}/paramgrill.c) + target_link_libraries(paramgrill libzstd_static m) #m is math library +endif ()