diff --git a/CMakeLists.txt b/CMakeLists.txt index c115fd2..193e95e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -27,7 +27,7 @@ option(AMALGAMATE_SOURCES "Amalgamate sources into miniz.h/c" OFF) option(BUILD_HEADER_ONLY "Build a header-only version" OFF) option(BUILD_SHARED_LIBS "Build shared library instead of static" ON) -set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin) +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/bin) if(BUILD_HEADER_ONLY) set(AMALGAMATE_SOURCES ON CACHE BOOL "Build a header-only version" FORCE) @@ -35,24 +35,24 @@ endif(BUILD_HEADER_ONLY) if(AMALGAMATE_SOURCES) # Amalgamate - file(COPY miniz.h DESTINATION ${CMAKE_BINARY_DIR}/amalgamation/) + file(COPY miniz.h DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/amalgamation/) file(READ miniz.h MINIZ_H) file(READ miniz_common.h MINIZ_COMMON_H) file(READ miniz_tdef.h MINIZ_TDEF_H) file(READ miniz_tinfl.h MINIZ_TINFL_H) file(READ miniz_zip.h MINIZ_ZIP_H) - file(APPEND ${CMAKE_BINARY_DIR}/amalgamation/miniz.h + file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/amalgamation/miniz.h "${MINIZ_COMMON_H} ${MINIZ_TDEF_H} ${MINIZ_TINFL_H} ${MINIZ_ZIP_H}") - file(COPY miniz.c DESTINATION ${CMAKE_BINARY_DIR}/amalgamation/) + file(COPY miniz.c DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/amalgamation/) file(READ miniz_tdef.c MINIZ_TDEF_C) file(READ miniz_tinfl.c MINIZ_TINFL_C) file(READ miniz_zip.c MINIZ_ZIP_C) - file(APPEND ${CMAKE_BINARY_DIR}/amalgamation/miniz.c + file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/amalgamation/miniz.c "${MINIZ_TDEF_C} ${MINIZ_TINFL_C} ${MINIZ_ZIP_C}") - file(READ ${CMAKE_BINARY_DIR}/amalgamation/miniz.h AMAL_MINIZ_H) - file(READ ${CMAKE_BINARY_DIR}/amalgamation/miniz.c AMAL_MINIZ_C) + file(READ ${CMAKE_CURRENT_BINARY_DIR}/amalgamation/miniz.h AMAL_MINIZ_H) + file(READ ${CMAKE_CURRENT_BINARY_DIR}/amalgamation/miniz.c AMAL_MINIZ_C) foreach(REPLACE_STRING miniz;miniz_common;miniz_tdef;miniz_tinfl;miniz_zip;miniz_export) string(REPLACE "#include \"${REPLACE_STRING}.h\"" "" AMAL_MINIZ_H "${AMAL_MINIZ_H}") string(REPLACE "#include \"${REPLACE_STRING}.h\"" "" AMAL_MINIZ_C "${AMAL_MINIZ_C}") @@ -61,7 +61,7 @@ if(AMALGAMATE_SOURCES) if(BUILD_HEADER_ONLY) string(CONCAT AMAL_MINIZ_H "${AMAL_MINIZ_H}" "\n#ifndef MINIZ_HEADER_FILE_ONLY\n" "${AMAL_MINIZ_C}" "\n#endif // MINIZ_HEADER_FILE_ONLY\n") - file(WRITE ${CMAKE_BINARY_DIR}/amalgamation/miniz.h "${AMAL_MINIZ_H}") + file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/amalgamation/miniz.h "${AMAL_MINIZ_H}") add_library(${PROJECT_NAME} INTERFACE) # Might not be a good idea to force this on the library user @@ -72,25 +72,24 @@ if(AMALGAMATE_SOURCES) set_property(TARGET ${PROJECT_NAME} APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES - $ + $ $ ) else(BUILD_HEADER_ONLY) string(CONCAT AMAL_MINIZ_C "#include \"miniz.h\"\n" "${AMAL_MINIZ_C}") - file(WRITE ${CMAKE_BINARY_DIR}/amalgamation/miniz.h "${AMAL_MINIZ_H}") - file(WRITE ${CMAKE_BINARY_DIR}/amalgamation/miniz.c "${AMAL_MINIZ_C}") - set(miniz_SOURCE ${CMAKE_BINARY_DIR}/amalgamation/miniz.h - ${CMAKE_BINARY_DIR}/amalgamation/miniz.c) + file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/amalgamation/miniz.h "${AMAL_MINIZ_H}") + file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/amalgamation/miniz.c "${AMAL_MINIZ_C}") + set(miniz_SOURCE ${CMAKE_CURRENT_BINARY_DIR}/amalgamation/miniz.h + ${CMAKE_CURRENT_BINARY_DIR}/amalgamation/miniz.c) add_library(${PROJECT_NAME} STATIC ${miniz_SOURCE}) target_include_directories(${PROJECT_NAME} PUBLIC - $ + $ $ ) endif(BUILD_HEADER_ONLY) - set(INSTALL_HEADERS ${CMAKE_BINARY_DIR}/amalgamation/miniz.h) + set(INSTALL_HEADERS ${CMAKE_CURRENT_BINARY_DIR}/amalgamation/miniz.h) else(AMALGAMATE_SOURCES) - include(GenerateExportHeader) set(miniz_SOURCE miniz.c miniz_zip.c miniz_tinfl.c miniz_tdef.c) add_library(${PROJECT_NAME} ${miniz_SOURCE}) @@ -114,9 +113,8 @@ else(AMALGAMATE_SOURCES) ) file(GLOB INSTALL_HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/*.h) - list(APPEND + list(APPEND INSTALL_HEADERS ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}_export.h) - endif(AMALGAMATE_SOURCES) if(NOT BUILD_HEADER_ONLY) @@ -136,7 +134,7 @@ install(TARGETS ${PROJECT_NAME} EXPORT ${PROJECT_NAME}Targets LIBRARY DESTINATION lib # users can use or INCLUDES DESTINATION include include/${PROJECT_NAME} - ) +) include(CMakePackageConfigHelpers) write_basic_package_version_file( @@ -208,3 +206,4 @@ set(INCLUDE_INSTALL_DIR "include") install(FILES ${INSTALL_HEADERS} DESTINATION ${INCLUDE_INSTALL_DIR}/${PROJECT_NAME}) +