use CMAKE_CURRENT_* directories
This commit is contained in:
parent
bee490c712
commit
cd99affed0
@ -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_HEADER_ONLY "Build a header-only version" OFF)
|
||||||
option(BUILD_SHARED_LIBS "Build shared library instead of static" ON)
|
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)
|
if(BUILD_HEADER_ONLY)
|
||||||
set(AMALGAMATE_SOURCES ON CACHE BOOL "Build a header-only version" FORCE)
|
set(AMALGAMATE_SOURCES ON CACHE BOOL "Build a header-only version" FORCE)
|
||||||
@ -35,24 +35,24 @@ endif(BUILD_HEADER_ONLY)
|
|||||||
|
|
||||||
if(AMALGAMATE_SOURCES)
|
if(AMALGAMATE_SOURCES)
|
||||||
# Amalgamate
|
# 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.h MINIZ_H)
|
||||||
file(READ miniz_common.h MINIZ_COMMON_H)
|
file(READ miniz_common.h MINIZ_COMMON_H)
|
||||||
file(READ miniz_tdef.h MINIZ_TDEF_H)
|
file(READ miniz_tdef.h MINIZ_TDEF_H)
|
||||||
file(READ miniz_tinfl.h MINIZ_TINFL_H)
|
file(READ miniz_tinfl.h MINIZ_TINFL_H)
|
||||||
file(READ miniz_zip.h MINIZ_ZIP_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}")
|
"${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_tdef.c MINIZ_TDEF_C)
|
||||||
file(READ miniz_tinfl.c MINIZ_TINFL_C)
|
file(READ miniz_tinfl.c MINIZ_TINFL_C)
|
||||||
file(READ miniz_zip.c MINIZ_ZIP_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}")
|
"${MINIZ_TDEF_C} ${MINIZ_TINFL_C} ${MINIZ_ZIP_C}")
|
||||||
|
|
||||||
file(READ ${CMAKE_BINARY_DIR}/amalgamation/miniz.h AMAL_MINIZ_H)
|
file(READ ${CMAKE_CURRENT_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.c AMAL_MINIZ_C)
|
||||||
foreach(REPLACE_STRING miniz;miniz_common;miniz_tdef;miniz_tinfl;miniz_zip;miniz_export)
|
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_H "${AMAL_MINIZ_H}")
|
||||||
string(REPLACE "#include \"${REPLACE_STRING}.h\"" "" AMAL_MINIZ_C "${AMAL_MINIZ_C}")
|
string(REPLACE "#include \"${REPLACE_STRING}.h\"" "" AMAL_MINIZ_C "${AMAL_MINIZ_C}")
|
||||||
@ -61,7 +61,7 @@ if(AMALGAMATE_SOURCES)
|
|||||||
if(BUILD_HEADER_ONLY)
|
if(BUILD_HEADER_ONLY)
|
||||||
string(CONCAT AMAL_MINIZ_H "${AMAL_MINIZ_H}" "\n#ifndef MINIZ_HEADER_FILE_ONLY\n"
|
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")
|
"${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)
|
add_library(${PROJECT_NAME} INTERFACE)
|
||||||
|
|
||||||
# Might not be a good idea to force this on the library user
|
# 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
|
set_property(TARGET ${PROJECT_NAME} APPEND
|
||||||
PROPERTY INTERFACE_INCLUDE_DIRECTORIES
|
PROPERTY INTERFACE_INCLUDE_DIRECTORIES
|
||||||
$<BUILD_INTERFACE:${CMAKE_BINARY_DIR}/amalgamation>
|
$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/amalgamation>
|
||||||
$<INSTALL_INTERFACE:include>
|
$<INSTALL_INTERFACE:include>
|
||||||
)
|
)
|
||||||
else(BUILD_HEADER_ONLY)
|
else(BUILD_HEADER_ONLY)
|
||||||
string(CONCAT AMAL_MINIZ_C "#include \"miniz.h\"\n" "${AMAL_MINIZ_C}")
|
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_CURRENT_BINARY_DIR}/amalgamation/miniz.h "${AMAL_MINIZ_H}")
|
||||||
file(WRITE ${CMAKE_BINARY_DIR}/amalgamation/miniz.c "${AMAL_MINIZ_C}")
|
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/amalgamation/miniz.c "${AMAL_MINIZ_C}")
|
||||||
set(miniz_SOURCE ${CMAKE_BINARY_DIR}/amalgamation/miniz.h
|
set(miniz_SOURCE ${CMAKE_CURRENT_BINARY_DIR}/amalgamation/miniz.h
|
||||||
${CMAKE_BINARY_DIR}/amalgamation/miniz.c)
|
${CMAKE_CURRENT_BINARY_DIR}/amalgamation/miniz.c)
|
||||||
add_library(${PROJECT_NAME} STATIC ${miniz_SOURCE})
|
add_library(${PROJECT_NAME} STATIC ${miniz_SOURCE})
|
||||||
target_include_directories(${PROJECT_NAME} PUBLIC
|
target_include_directories(${PROJECT_NAME} PUBLIC
|
||||||
$<BUILD_INTERFACE:${CMAKE_BINARY_DIR}/amalgamation>
|
$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/amalgamation>
|
||||||
$<INSTALL_INTERFACE:include>
|
$<INSTALL_INTERFACE:include>
|
||||||
)
|
)
|
||||||
endif(BUILD_HEADER_ONLY)
|
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)
|
else(AMALGAMATE_SOURCES)
|
||||||
|
|
||||||
include(GenerateExportHeader)
|
include(GenerateExportHeader)
|
||||||
set(miniz_SOURCE miniz.c miniz_zip.c miniz_tinfl.c miniz_tdef.c)
|
set(miniz_SOURCE miniz.c miniz_zip.c miniz_tinfl.c miniz_tdef.c)
|
||||||
add_library(${PROJECT_NAME} ${miniz_SOURCE})
|
add_library(${PROJECT_NAME} ${miniz_SOURCE})
|
||||||
@ -116,7 +115,6 @@ else(AMALGAMATE_SOURCES)
|
|||||||
file(GLOB INSTALL_HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/*.h)
|
file(GLOB INSTALL_HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/*.h)
|
||||||
list(APPEND
|
list(APPEND
|
||||||
INSTALL_HEADERS ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}_export.h)
|
INSTALL_HEADERS ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}_export.h)
|
||||||
|
|
||||||
endif(AMALGAMATE_SOURCES)
|
endif(AMALGAMATE_SOURCES)
|
||||||
|
|
||||||
if(NOT BUILD_HEADER_ONLY)
|
if(NOT BUILD_HEADER_ONLY)
|
||||||
@ -208,3 +206,4 @@ set(INCLUDE_INSTALL_DIR "include")
|
|||||||
|
|
||||||
install(FILES ${INSTALL_HEADERS} DESTINATION ${INCLUDE_INSTALL_DIR}/${PROJECT_NAME})
|
install(FILES ${INSTALL_HEADERS} DESTINATION ${INCLUDE_INSTALL_DIR}/${PROJECT_NAME})
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user