From 6fbd2ad7805fcf996f01c29d9b11d0c5e91a8971 Mon Sep 17 00:00:00 2001 From: Axel Barrot Date: Wed, 14 Dec 2016 15:58:00 +0100 Subject: support lcms library (http://www.littlecms.com/download.html) --- ports/lcms/CMakeLists.txt | 65 +++++++++++++++++++++++++++++++++++++++++++++++ ports/lcms/CONTROL | 4 +++ ports/lcms/portfile.cmake | 31 ++++++++++++++++++++++ 3 files changed, 100 insertions(+) create mode 100644 ports/lcms/CMakeLists.txt create mode 100644 ports/lcms/CONTROL create mode 100644 ports/lcms/portfile.cmake diff --git a/ports/lcms/CMakeLists.txt b/ports/lcms/CMakeLists.txt new file mode 100644 index 000000000..8c43a2ea3 --- /dev/null +++ b/ports/lcms/CMakeLists.txt @@ -0,0 +1,65 @@ +cmake_minimum_required(VERSION 3.5) + +project(lcms) + +option(SHARED_LIBRARY "use shared library" ON) + +set(LIBRARY_TYPE STATIC) +if(SHARED_LIBRARY) + set(LIBRARY_TYPE SHARED) +endif(SHARED_LIBRARY) + +set(SRCS +"src/cmstypes.c" +"src/cmsvirt.c" +"src/cmswtpnt.c" +"src/cmsxform.c" +"src/lcms2.def" +"src/lcms2_internal.h" +"src/cmsalpha.c" +"src/cmscam02.c" +"src/cmscgats.c" +"src/cmscnvrt.c" +"src/cmserr.c" +"src/cmsgamma.c" +"src/cmsgmt.c" +"src/cmshalf.c" +"src/cmsintrp.c" +"src/cmsio0.c" +"src/cmsio1.c" +"src/cmslut.c" +"src/cmsmd5.c" +"src/cmsmtrx.c" +"src/cmsnamed.c" +"src/cmsopt.c" +"src/cmspack.c" +"src/cmspcs.c" +"src/cmsplugin.c" +"src/cmsps2.c" +"src/cmssamp.c" +"src/cmssm.c" +) + +include_directories( +"./include" +) + +add_library(lcms ${LIBRARY_TYPE} +${SRCS} +) + +if(NOT SKIP_INSTALL_HEADERS AND NOT SKIP_INSTALL_ALL ) + + install(FILES + "./include/lcms2.h" + "./include/lcms2_plugin.h" + DESTINATION include + ) + +endif(NOT SKIP_INSTALL_HEADERS AND NOT SKIP_INSTALL_ALL ) + +install(TARGETS lcms EXPORT lcms_EXPORT + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib +) diff --git a/ports/lcms/CONTROL b/ports/lcms/CONTROL new file mode 100644 index 000000000..64567fddd --- /dev/null +++ b/ports/lcms/CONTROL @@ -0,0 +1,4 @@ +Source: lcms +Version: 2.8 +Build-Depends: +Description: Little CMS. \ No newline at end of file diff --git a/ports/lcms/portfile.cmake b/ports/lcms/portfile.cmake new file mode 100644 index 000000000..5c6926071 --- /dev/null +++ b/ports/lcms/portfile.cmake @@ -0,0 +1,31 @@ +include(vcpkg_common_functions) +set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/lcms2-2.8) + +vcpkg_download_distfile(ARCHIVE + URLS "https://sourceforge.net/projects/lcms/files/lcms/2.8/lcms2-2.8.tar.gz/download" + #URLS "C:/Users/d3r55d/Downloads/lcms2-2.8.tar.gz" + FILENAME "lcms2-2.8.tar.gz" + SHA512 a9478885b4892c79314a2ef9ab560e6655ac8f2d17abae0805e8b871138bb190e21f0e5c805398449f9dad528dc50baaf9e3cce8b8158eb8ff74179be5733f8f +) +vcpkg_extract_source_archive(${ARCHIVE}) +message(STATUS ${SOURCE_PATH}) +file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) + +set(USE_SHARED_LIBRARY OFF) +if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) + set(USE_SHARED_LIBRARY ON) +endif() + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + OPTIONS + -DSHARED_LIBRARY=${USE_SHARED_LIBRARY} + OPTIONS_DEBUG + -DSKIP_INSTALL_HEADERS=ON +) + +vcpkg_install_cmake() + +file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/lcms RENAME copyright) + +vcpkg_copy_pdbs() -- cgit v1.2.3 From 0b62c9ce911a8a86ea7cee9e1c323b61d7b313a6 Mon Sep 17 00:00:00 2001 From: agadoul Date: Thu, 15 Dec 2016 09:12:00 +0100 Subject: fix warning due to encoding. --- ports/lcms/CMakeLists.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ports/lcms/CMakeLists.txt b/ports/lcms/CMakeLists.txt index 8c43a2ea3..e78b9b6b6 100644 --- a/ports/lcms/CMakeLists.txt +++ b/ports/lcms/CMakeLists.txt @@ -40,6 +40,9 @@ set(SRCS "src/cmssm.c" ) +add_definitions(-DUNICODE -D_UNICODE) +#string(REPLACE "/utf-8" "" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}") + include_directories( "./include" ) -- cgit v1.2.3 From 9e34484cbe2e9de1deb16cd2ca4e1faea456aa77 Mon Sep 17 00:00:00 2001 From: agadoul Date: Thu, 15 Dec 2016 13:16:55 +0100 Subject: uncomment removal of utf-8 flag --- ports/lcms/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ports/lcms/CMakeLists.txt b/ports/lcms/CMakeLists.txt index e78b9b6b6..85807a0b9 100644 --- a/ports/lcms/CMakeLists.txt +++ b/ports/lcms/CMakeLists.txt @@ -41,7 +41,7 @@ set(SRCS ) add_definitions(-DUNICODE -D_UNICODE) -#string(REPLACE "/utf-8" "" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}") +string(REPLACE "/utf-8" "" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}") include_directories( "./include" -- cgit v1.2.3 From 798ae24d96edba63917a769ec196e555385af4dc Mon Sep 17 00:00:00 2001 From: agadoul Date: Mon, 30 Jan 2017 14:35:38 +0100 Subject: use induced library type. --- ports/lcms/CMakeLists.txt | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/ports/lcms/CMakeLists.txt b/ports/lcms/CMakeLists.txt index 85807a0b9..ccb8b6f5a 100644 --- a/ports/lcms/CMakeLists.txt +++ b/ports/lcms/CMakeLists.txt @@ -4,11 +4,6 @@ project(lcms) option(SHARED_LIBRARY "use shared library" ON) -set(LIBRARY_TYPE STATIC) -if(SHARED_LIBRARY) - set(LIBRARY_TYPE SHARED) -endif(SHARED_LIBRARY) - set(SRCS "src/cmstypes.c" "src/cmsvirt.c" @@ -47,9 +42,7 @@ include_directories( "./include" ) -add_library(lcms ${LIBRARY_TYPE} -${SRCS} -) +add_library(lcms ${SRCS}) if(NOT SKIP_INSTALL_HEADERS AND NOT SKIP_INSTALL_ALL ) -- cgit v1.2.3 From 4ef429dd9e687f80f9f30042263d817984a10097 Mon Sep 17 00:00:00 2001 From: agadoul Date: Mon, 30 Jan 2017 15:22:39 +0100 Subject: implment reviews. --- ports/lcms/CMakeLists.txt | 6 ++---- ports/lcms/portfile.cmake | 10 +++++++--- ports/lcms/shared.patch | 10 ++++++++++ 3 files changed, 19 insertions(+), 7 deletions(-) create mode 100644 ports/lcms/shared.patch diff --git a/ports/lcms/CMakeLists.txt b/ports/lcms/CMakeLists.txt index ccb8b6f5a..0fedfb95e 100644 --- a/ports/lcms/CMakeLists.txt +++ b/ports/lcms/CMakeLists.txt @@ -2,8 +2,6 @@ cmake_minimum_required(VERSION 3.5) project(lcms) -option(SHARED_LIBRARY "use shared library" ON) - set(SRCS "src/cmstypes.c" "src/cmsvirt.c" @@ -44,7 +42,7 @@ include_directories( add_library(lcms ${SRCS}) -if(NOT SKIP_INSTALL_HEADERS AND NOT SKIP_INSTALL_ALL ) +if(NOT SKIP_INSTALL_HEADERS ) install(FILES "./include/lcms2.h" @@ -52,7 +50,7 @@ if(NOT SKIP_INSTALL_HEADERS AND NOT SKIP_INSTALL_ALL ) DESTINATION include ) -endif(NOT SKIP_INSTALL_HEADERS AND NOT SKIP_INSTALL_ALL ) +endif(NOT SKIP_INSTALL_HEADERS ) install(TARGETS lcms EXPORT lcms_EXPORT RUNTIME DESTINATION bin diff --git a/ports/lcms/portfile.cmake b/ports/lcms/portfile.cmake index 5c6926071..4487cce6a 100644 --- a/ports/lcms/portfile.cmake +++ b/ports/lcms/portfile.cmake @@ -3,7 +3,6 @@ set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/lcms2-2.8) vcpkg_download_distfile(ARCHIVE URLS "https://sourceforge.net/projects/lcms/files/lcms/2.8/lcms2-2.8.tar.gz/download" - #URLS "C:/Users/d3r55d/Downloads/lcms2-2.8.tar.gz" FILENAME "lcms2-2.8.tar.gz" SHA512 a9478885b4892c79314a2ef9ab560e6655ac8f2d17abae0805e8b871138bb190e21f0e5c805398449f9dad528dc50baaf9e3cce8b8158eb8ff74179be5733f8f ) @@ -18,8 +17,6 @@ endif() vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} - OPTIONS - -DSHARED_LIBRARY=${USE_SHARED_LIBRARY} OPTIONS_DEBUG -DSKIP_INSTALL_HEADERS=ON ) @@ -29,3 +26,10 @@ vcpkg_install_cmake() file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/lcms RENAME copyright) vcpkg_copy_pdbs() + +#patch header files to fix import/export issues +if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) + vcpkg_apply_patches( + SOURCE_PATH ${CURRENT_PACKAGES_DIR}/include + PATCHES "${CMAKE_CURRENT_LIST_DIR}/shared.patch") +endif(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) diff --git a/ports/lcms/shared.patch b/ports/lcms/shared.patch new file mode 100644 index 000000000..b3e7bf75f --- /dev/null +++ b/ports/lcms/shared.patch @@ -0,0 +1,10 @@ +--- lcms2.h Wed Jul 20 08:46:01 2016 ++++ lcms2.h Mon Jan 30 15:01:12 2017 +@@ -212,6 +212,7 @@ + + #endif // CMS_USE_BIG_ENDIAN + ++#define CMS_DLL_BUILD + + // Calling convention -- this is hardly platform and compiler dependent + #ifdef CMS_IS_WINDOWS_ -- cgit v1.2.3