1361469ad541e72994cacb88e4e0f98ea74d23735yuta.### cmake file for building libdivsufsort Package ### 24b612dd9f9fa2ad7953815331ced1183112ed42eyuta.cmake_minimum_required(VERSION 2.4.4) 30b0d08bc414f9152b0f7afac36b56b4b30e2679fyuta.set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules") 40b0d08bc414f9152b0f7afac36b56b4b30e2679fyuta.include(AppendCompilerFlags) 50b0d08bc414f9152b0f7afac36b56b4b30e2679fyuta. 60b0d08bc414f9152b0f7afac36b56b4b30e2679fyuta.## Project information ## 70b0d08bc414f9152b0f7afac36b56b4b30e2679fyuta.project(libdivsufsort C) 8361469ad541e72994cacb88e4e0f98ea74d23735yuta.set(PROJECT_VENDOR "Yuta Mori") 9361469ad541e72994cacb88e4e0f98ea74d23735yuta.set(PROJECT_CONTACT "yuta.256@gmail.com") 10735637c650fd24b2a84ad4f5827ff75b603f05bfYuta Moriset(PROJECT_URL "https://github.com/y-256/libdivsufsort") 11361469ad541e72994cacb88e4e0f98ea74d23735yuta.set(PROJECT_DESCRIPTION "A lightweight suffix sorting library") 1279858ed9e32ea21f007d75883183e6a00b39a492yuta.include(VERSION.cmake) 130b0d08bc414f9152b0f7afac36b56b4b30e2679fyuta. 14361469ad541e72994cacb88e4e0f98ea74d23735yuta.## CPack configuration ## 15361469ad541e72994cacb88e4e0f98ea74d23735yuta.set(CPACK_GENERATOR "TGZ;TBZ2;ZIP") 16361469ad541e72994cacb88e4e0f98ea74d23735yuta.set(CPACK_SOURCE_GENERATOR "TGZ;TBZ2;ZIP") 17361469ad541e72994cacb88e4e0f98ea74d23735yuta.include(ProjectCPack) 18361469ad541e72994cacb88e4e0f98ea74d23735yuta. 190b0d08bc414f9152b0f7afac36b56b4b30e2679fyuta.## Project options ## 200b0d08bc414f9152b0f7afac36b56b4b30e2679fyuta.option(BUILD_SHARED_LIBS "Set to OFF to build static libraries" ON) 210b0d08bc414f9152b0f7afac36b56b4b30e2679fyuta.option(BUILD_EXAMPLES "Build examples" ON) 22a844abd2925b6820947c8887e314a44435b884dayuta.option(BUILD_DIVSUFSORT64 "Build libdivsufsort64" OFF) 23361469ad541e72994cacb88e4e0f98ea74d23735yuta.option(USE_OPENMP "Use OpenMP for parallelization" OFF) 247ce18b071a5fd6a76570bcc38e17b7f7dffe00f4yuta.option(WITH_LFS "Enable Large File Support" ON) 250b0d08bc414f9152b0f7afac36b56b4b30e2679fyuta. 264b612dd9f9fa2ad7953815331ced1183112ed42eyuta.## Installation directories ## 274b612dd9f9fa2ad7953815331ced1183112ed42eyuta.set(LIB_SUFFIX "" CACHE STRING "Define suffix of directory name (32 or 64)") 284b612dd9f9fa2ad7953815331ced1183112ed42eyuta. 294b612dd9f9fa2ad7953815331ced1183112ed42eyuta.set(CMAKE_INSTALL_RUNTIMEDIR "" CACHE PATH "Specify the output directory for dll runtimes (default is bin)") 304b612dd9f9fa2ad7953815331ced1183112ed42eyuta.if(NOT CMAKE_INSTALL_RUNTIMEDIR) 314b612dd9f9fa2ad7953815331ced1183112ed42eyuta. set(CMAKE_INSTALL_RUNTIMEDIR "${CMAKE_INSTALL_PREFIX}/bin") 324b612dd9f9fa2ad7953815331ced1183112ed42eyuta.endif(NOT CMAKE_INSTALL_RUNTIMEDIR) 334b612dd9f9fa2ad7953815331ced1183112ed42eyuta. 344b612dd9f9fa2ad7953815331ced1183112ed42eyuta.set(CMAKE_INSTALL_LIBDIR "" CACHE PATH "Specify the output directory for libraries (default is lib)") 354b612dd9f9fa2ad7953815331ced1183112ed42eyuta.if(NOT CMAKE_INSTALL_LIBDIR) 364b612dd9f9fa2ad7953815331ced1183112ed42eyuta. set(CMAKE_INSTALL_LIBDIR "${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}") 374b612dd9f9fa2ad7953815331ced1183112ed42eyuta.endif(NOT CMAKE_INSTALL_LIBDIR) 384b612dd9f9fa2ad7953815331ced1183112ed42eyuta. 394b612dd9f9fa2ad7953815331ced1183112ed42eyuta.set(CMAKE_INSTALL_INCLUDEDIR "" CACHE PATH "Specify the output directory for header files (default is include)") 404b612dd9f9fa2ad7953815331ced1183112ed42eyuta.if(NOT CMAKE_INSTALL_INCLUDEDIR) 414b612dd9f9fa2ad7953815331ced1183112ed42eyuta. set(CMAKE_INSTALL_INCLUDEDIR "${CMAKE_INSTALL_PREFIX}/include") 424b612dd9f9fa2ad7953815331ced1183112ed42eyuta.endif(NOT CMAKE_INSTALL_INCLUDEDIR) 434b612dd9f9fa2ad7953815331ced1183112ed42eyuta. 444b612dd9f9fa2ad7953815331ced1183112ed42eyuta.set(CMAKE_INSTALL_PKGCONFIGDIR "" CACHE PATH "Specify the output directory for pkgconfig files (default is lib/pkgconfig)") 454b612dd9f9fa2ad7953815331ced1183112ed42eyuta.if(NOT CMAKE_INSTALL_PKGCONFIGDIR) 464b612dd9f9fa2ad7953815331ced1183112ed42eyuta. set(CMAKE_INSTALL_PKGCONFIGDIR "${CMAKE_INSTALL_LIBDIR}/pkgconfig") 474b612dd9f9fa2ad7953815331ced1183112ed42eyuta.endif(NOT CMAKE_INSTALL_PKGCONFIGDIR) 484b612dd9f9fa2ad7953815331ced1183112ed42eyuta. 490b0d08bc414f9152b0f7afac36b56b4b30e2679fyuta.## Build type ## 500b0d08bc414f9152b0f7afac36b56b4b30e2679fyuta.if(NOT CMAKE_BUILD_TYPE) 510b0d08bc414f9152b0f7afac36b56b4b30e2679fyuta. set(CMAKE_BUILD_TYPE "Release") 520b0d08bc414f9152b0f7afac36b56b4b30e2679fyuta.elseif(CMAKE_BUILD_TYPE STREQUAL "Debug") 530b0d08bc414f9152b0f7afac36b56b4b30e2679fyuta. set(CMAKE_VERBOSE_MAKEFILE ON) 540b0d08bc414f9152b0f7afac36b56b4b30e2679fyuta.endif(NOT CMAKE_BUILD_TYPE) 550b0d08bc414f9152b0f7afac36b56b4b30e2679fyuta. 560b0d08bc414f9152b0f7afac36b56b4b30e2679fyuta.## Compiler options ## 570b0d08bc414f9152b0f7afac36b56b4b30e2679fyuta.if(MSVC) 580b0d08bc414f9152b0f7afac36b56b4b30e2679fyuta. append_c_compiler_flags("/W4" "VC" CMAKE_C_FLAGS) 590b0d08bc414f9152b0f7afac36b56b4b30e2679fyuta. append_c_compiler_flags("/Oi;/Ot;/Ox;/Oy" "VC" CMAKE_C_FLAGS_RELEASE) 60361469ad541e72994cacb88e4e0f98ea74d23735yuta. if(USE_OPENMP) 61361469ad541e72994cacb88e4e0f98ea74d23735yuta. append_c_compiler_flags("/openmp" "VC" CMAKE_C_FLAGS) 62361469ad541e72994cacb88e4e0f98ea74d23735yuta. endif(USE_OPENMP) 630b0d08bc414f9152b0f7afac36b56b4b30e2679fyuta.elseif(BORLAND) 640b0d08bc414f9152b0f7afac36b56b4b30e2679fyuta. append_c_compiler_flags("-w" "BCC" CMAKE_C_FLAGS) 650b0d08bc414f9152b0f7afac36b56b4b30e2679fyuta. append_c_compiler_flags("-Oi;-Og;-Os;-Ov;-Ox" "BCC" CMAKE_C_FLAGS_RELEASE) 660b0d08bc414f9152b0f7afac36b56b4b30e2679fyuta.else(MSVC) 670b0d08bc414f9152b0f7afac36b56b4b30e2679fyuta. if(CMAKE_COMPILER_IS_GNUCC) 680b0d08bc414f9152b0f7afac36b56b4b30e2679fyuta. append_c_compiler_flags("-Wall" "GCC" CMAKE_C_FLAGS) 690b0d08bc414f9152b0f7afac36b56b4b30e2679fyuta. append_c_compiler_flags("-fomit-frame-pointer" "GCC" CMAKE_C_FLAGS_RELEASE) 70361469ad541e72994cacb88e4e0f98ea74d23735yuta. if(USE_OPENMP) 71361469ad541e72994cacb88e4e0f98ea74d23735yuta. append_c_compiler_flags("-fopenmp" "GCC" CMAKE_C_FLAGS) 72361469ad541e72994cacb88e4e0f98ea74d23735yuta. endif(USE_OPENMP) 730b0d08bc414f9152b0f7afac36b56b4b30e2679fyuta. else(CMAKE_COMPILER_IS_GNUCC) 740b0d08bc414f9152b0f7afac36b56b4b30e2679fyuta. append_c_compiler_flags("-Wall" "UNKNOWN" CMAKE_C_FLAGS) 750b0d08bc414f9152b0f7afac36b56b4b30e2679fyuta. append_c_compiler_flags("-fomit-frame-pointer" "UNKNOWN" CMAKE_C_FLAGS_RELEASE) 76361469ad541e72994cacb88e4e0f98ea74d23735yuta. if(USE_OPENMP) 77361469ad541e72994cacb88e4e0f98ea74d23735yuta. append_c_compiler_flags("-fopenmp;-openmp;-omp" "UNKNOWN" CMAKE_C_FLAGS) 78361469ad541e72994cacb88e4e0f98ea74d23735yuta. endif(USE_OPENMP) 790b0d08bc414f9152b0f7afac36b56b4b30e2679fyuta. endif(CMAKE_COMPILER_IS_GNUCC) 800b0d08bc414f9152b0f7afac36b56b4b30e2679fyuta.endif(MSVC) 810b0d08bc414f9152b0f7afac36b56b4b30e2679fyuta. 820b0d08bc414f9152b0f7afac36b56b4b30e2679fyuta.## Add definitions ## 830b0d08bc414f9152b0f7afac36b56b4b30e2679fyuta.add_definitions(-DHAVE_CONFIG_H=1 -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS) 840b0d08bc414f9152b0f7afac36b56b4b30e2679fyuta. 850b0d08bc414f9152b0f7afac36b56b4b30e2679fyuta.## Add subdirectories ## 86361469ad541e72994cacb88e4e0f98ea74d23735yuta.add_subdirectory(pkgconfig) 870b0d08bc414f9152b0f7afac36b56b4b30e2679fyuta.add_subdirectory(include) 880b0d08bc414f9152b0f7afac36b56b4b30e2679fyuta.add_subdirectory(lib) 890b0d08bc414f9152b0f7afac36b56b4b30e2679fyuta.if(BUILD_EXAMPLES) 900b0d08bc414f9152b0f7afac36b56b4b30e2679fyuta. add_subdirectory(examples) 910b0d08bc414f9152b0f7afac36b56b4b30e2679fyuta.endif(BUILD_EXAMPLES) 920b0d08bc414f9152b0f7afac36b56b4b30e2679fyuta. 930b0d08bc414f9152b0f7afac36b56b4b30e2679fyuta.## Add 'uninstall' target ## 940b0d08bc414f9152b0f7afac36b56b4b30e2679fyuta.CONFIGURE_FILE( 950b0d08bc414f9152b0f7afac36b56b4b30e2679fyuta. "${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules/cmake_uninstall.cmake.in" 960b0d08bc414f9152b0f7afac36b56b4b30e2679fyuta. "${CMAKE_CURRENT_BINARY_DIR}/CMakeModules/cmake_uninstall.cmake" 970b0d08bc414f9152b0f7afac36b56b4b30e2679fyuta. IMMEDIATE @ONLY) 980b0d08bc414f9152b0f7afac36b56b4b30e2679fyuta.ADD_CUSTOM_TARGET(uninstall 990b0d08bc414f9152b0f7afac36b56b4b30e2679fyuta. "${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_BINARY_DIR}/CMakeModules/cmake_uninstall.cmake") 100