--- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -51,8 +51,11 @@ endif() project(lzo VERSION 2.10 LANGUAGES C) # configuration options -option(ENABLE_STATIC "Build static LZO library." ON) -option(ENABLE_SHARED "Build shared LZO library." OFF) +option(ENABLE_STATIC "Build static LZO library." ON) +option(ENABLE_SHARED "Build shared LZO library." OFF) +option(ENABLE_TESTS "Build tests." ON) +option(ENABLE_EXAMPLES "Build examples." ON) +option(ENABLE_DOCS "Install documentation." ON) if(NOT ENABLE_STATIC AND NOT ENABLE_SHARED) set(ENABLE_STATIC ON) endif() @@ -127,14 +130,20 @@ macro(lzo_add_executable t) endif() endmacro() # main test driver +if(ENABLE_TESTS OR ENABLE_EXAMPLES) lzo_add_executable(lzotest lzotest/lzotest.c) +endif() # examples +if(ENABLE_EXAMPLES) lzo_add_executable(dict examples/dict.c) lzo_add_executable(lzopack examples/lzopack.c) lzo_add_executable(overlap examples/overlap.c) lzo_add_executable(precomp examples/precomp.c) lzo_add_executable(precomp2 examples/precomp2.c) +endif() +if(ENABLE_TESTS OR ENABLE_EXAMPLES) lzo_add_executable(simple examples/simple.c) +endif() # some boring internal test programs if(0) lzo_add_executable(align tests/align.c) @@ -144,7 +153,7 @@ if(0) endif() # miniLZO -if(1) +if(ENABLE_TESTS) add_executable(testmini minilzo/testmini.c minilzo/minilzo.c) target_include_directories(testmini PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/include/lzo") # needed for "lzoconf.h" endif() @@ -263,8 +272,10 @@ add_test(NAME lzotest-03 COMMAND lzotest if(DEFINED CMAKE_INSTALL_FULL_LIBDIR) -set(f AUTHORS COPYING NEWS THANKS doc/LZO.FAQ doc/LZO.TXT doc/LZOAPI.TXT) -install(FILES ${f} DESTINATION "${CMAKE_INSTALL_FULL_DOCDIR}") +if(ENABLE_DOCS) + set(f AUTHORS COPYING NEWS THANKS doc/LZO.FAQ doc/LZO.TXT doc/LZOAPI.TXT) + install(FILES ${f} DESTINATION "${CMAKE_INSTALL_FULL_DOCDIR}") +endif() set(f include/lzo/lzo1.h include/lzo/lzo1a.h include/lzo/lzo1b.h include/lzo/lzo1c.h include/lzo/lzo1f.h include/lzo/lzo1x.h @@ -285,7 +296,7 @@ if(ENABLE_SHARED) ) endif() -if(1) +if(ENABLE_EXAMPLES) set(f lzopack lzotest simple testmini) # examples install(TARGETS ${f} DESTINATION "${CMAKE_INSTALL_FULL_LIBEXECDIR}/lzo/examples") endif()