set(CHARLS_MAJOR_VERSION 2) set(CHARLS_MINOR_VERSION 4) set(CHARLS_BUILD_VERSION 2) set(CHARLS_VERSION "${CHARLS_MAJOR_VERSION}.${CHARLS_MINOR_VERSION}.${CHARLS_BUILD_VERSION}") project(CHARLS_NAMESPACE VERSION ${CHARLS_VERSION} LANGUAGES C CXX) set(BUILD_SHARED_LIBS OFF) string(TOLOWER ${CHARLS_NAMESPACE} CHARLS_LIBRARY_NAME) add_library(${CHARLS_LIBRARY_NAME} "${CMAKE_CURRENT_LIST_DIR}/charls_jpegls_decoder.cpp" "${CMAKE_CURRENT_LIST_DIR}/charls_jpegls_encoder.cpp" "${CMAKE_CURRENT_LIST_DIR}/jpegls_error.cpp" "${CMAKE_CURRENT_LIST_DIR}/jpegls.cpp" "${CMAKE_CURRENT_LIST_DIR}/jpeg_stream_reader.cpp" "${CMAKE_CURRENT_LIST_DIR}/jpeg_stream_writer.cpp" "${CMAKE_CURRENT_LIST_DIR}/validate_spiff_header.cpp" "${CMAKE_CURRENT_LIST_DIR}/version.cpp") set(CHARLS_PUB_HEADER_FILES "${CMAKE_CURRENT_LIST_DIR}/annotations.h" "${CMAKE_CURRENT_LIST_DIR}/api_abi.h" "${CMAKE_CURRENT_LIST_DIR}/charls.h" "${CMAKE_CURRENT_LIST_DIR}/charls_jpegls_decoder.h" "${CMAKE_CURRENT_LIST_DIR}/charls_jpegls_encoder.h" "${CMAKE_CURRENT_LIST_DIR}/jpegls_error.h" "${CMAKE_CURRENT_LIST_DIR}/public_types.h" "${CMAKE_CURRENT_LIST_DIR}/validate_spiff_header.h" "${CMAKE_CURRENT_LIST_DIR}/version.h") if(NOT BUILD_SHARED_LIBS) target_compile_definitions(${CHARLS_LIBRARY_NAME} PUBLIC CHARLS_STATIC) endif() set_target_properties(${CHARLS_LIBRARY_NAME} PROPERTIES VERSION ${CHARLS_VERSION} SOVERSION ${CHARLS_MAJOR_VERSION}) target_compile_definitions(${CHARLS_LIBRARY_NAME} PRIVATE CHARLS_LIBRARY_BUILD) target_compile_features(${CHARLS_LIBRARY_NAME} PUBLIC cxx_std_14) set_target_properties(${CHARLS_LIBRARY_NAME} PROPERTIES CXX_VISIBILITY_PRESET hidden) set_target_properties(${CHARLS_LIBRARY_NAME} PROPERTIES VISIBILITY_INLINES_HIDDEN 1) if(WIN32 AND BUILD_SHARED_LIBS) if(MSVC AND CMAKE_SIZEOF_VOID_P EQUAL 4) target_sources(${CHARLS_LIBRARY_NAME} PRIVATE "${CMAKE_CURRENT_LIST_DIR}/charls.def") endif() endif()