Re: [CMake] How to set libcurl library path and the library name?

2017-04-27 Thread Rolf Eike Beer
Alex Chen wrote:
> There is an error in the FindCURL document of Cmake 3.8 (or prior versions).

No.

> It says
> 
> CURL_INCLUDE_DIRS   - where to find curl/curl.h, etc.

Which is what it is _setting_.

> But in fact it is looking for CURL_INCLUDE_DIR, not CURL_INCLUDE_DIRS.  If I
> set –DCURL_INCLUDE_DIRS, cmake cannot find libcurl’s header files.

This is correct, it is _looking_ for the singular form, and then putting it in 
the plural one, like basically all modules do. This has the reason that 
sometimes you need multiple include dirs, but you can't properly store that in 
one cache variable (you need to know which one was actually not found on next 
run).

Eike

signature.asc
Description: This is a digitally signed message part.
-- 

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/cmake

Re: [CMake] How to set libcurl library path and the library name?

2017-04-27 Thread Alex Chen
There is an error in the FindCURL document of Cmake 3.8 (or prior versions).

It says

 

CURL_INCLUDE_DIRS   - where to find curl/curl.h, etc.

CURL_LIBRARIES  - List of libraries when using curl.

CURL_FOUND  - True if curl found.

CURL_VERSION_STRING - the version of curl found (since CMake 2.8.8)

 

But in fact it is looking for CURL_INCLUDE_DIR, not CURL_INCLUDE_DIRS.  If I 
set –DCURL_INCLUDE_DIRS, cmake cannot find libcurl’s header files.

 

Alex Chen

 

From: CMake  on behalf of Alex Chen 

Date: Thursday, April 27, 2017 at 5:14 PM
To: CMake 
Subject: [CMake] How to set libcurl library path and the library name?

 

Hi,

I am trying to build AWS CPP SDK for the iOS from downloaded source. The 
compilation seems to go well but it fails at link time.  My CMake invocation is

 

/Applications/CMake.app/Contents/bin/cmake -Wno-dev 
-DBUILD_ONLY=s3;s3-encryption 
-DCMAKE_OSX_SYSROOT=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk
 -DCMAKE_OSX_ARCHITECTURES=arm64 -DCMAKE_SYSTEM_NAME=Darwin 
-DCMAKE_SHARED_LINKER_FLAGS=-framework Foundation -framework Security 
-DCMAKE_EXE_LINKER_FLAGS=-framework Foundation -framework Security 
-DCMAKE_PREFIX_PATH=/Volumes/Workspace/Prebuilt/Release-iphoneos/libcurl 
-DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS=-O3 
-DCMAKE_INSTALL_PREFIX=/Volumes/Workspace/AWS/CppSDK/1.0.101/iPhoneOS/arm64/Release
 -DBUILD_SHARED_LIBS=off -DCPP_STANDARD=14 
-DCURL_INCLUDE_DIR=/Volumes/Workspace/Prebuilt/Release-iphoneos/libcurl/include64
 -DCURL_LIBRARIES=libcurl_7.51 -DSTATIC_LINKING=1 -DTARGET_ARCH=Apple 
/Volumes/Workspace/FMSOURCE/Shared/AWS/CppSDK/aws-sdk-cpp-1.0.101

 

The output from CMake looks like it finds the include path of libcurl but no 
the library.

 

-- Found Git: /usr/bin/git (found version "2.11.0 (Apple Git-81)")

-- Building AWS libraries as static objects

fatal: Not a git repository (or any parent up to mount point /Volumes/Workspace)

Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).

-- Building project version: 1.0.101

-- The CXX compiler identification is AppleClang 8.1.0.8020042

-- Check for working CXX compiler: 
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++

-- Check for working CXX compiler: 
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++
 -- works

-- Detecting CXX compiler ABI info

-- Detecting CXX compiler ABI info - done

-- Detecting CXX compile features

-- Detecting CXX compile features - done

-- Found ZLIB: /usr/lib/libz.dylib (found version "1.2.8")

--   Zlib include directory: 
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/usr/include

--   Zlib library: /usr/lib/libz.dylib

-- Encryption: CommonCrypto

-- Http client: Curl

-- Found CURL: /usr/lib/libcurl.dylib (found version "7.51.0")

--   Curl include directory: 
/Volumes/Workspace/FMSOURCE/Shared/Prebuilt/Release-iphoneos/libcurl/include64

--   Curl library: /usr/lib/libcurl.dylib

-- Considering s3

-- Considering s3-encryption

-- The C compiler identification is AppleClang 8.1.0.8020042

-- Check for working C compiler: 
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang

-- Check for working C compiler: 
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang
 -- works

-- Detecting C compiler ABI info

-- Detecting C compiler ABI info - done

-- Detecting C compile features

-- Detecting C compile features - done

-- Updating version info to 1.0.101

-- Custom memory management disabled

-- Configuring done

-- Generating done

 

The linking errors look like this:

 

[ 92%] Linking CXX executable aws-cpp-sdk-s3-integration-tests

ld: warning: ignoring file /usr/lib/libcurl.dylib, missing required 
architecture arm64 in file /usr/lib/libcurl.dylib (2 slices)

Undefined symbols for architecture arm64:

  "_curl_easy_cleanup", referenced from:

  Aws::Http::CurlHandleContainer::~CurlHandleContainer() in 
libaws-cpp-sdk-core.a(CurlHandleContainer.cpp.o)

  "_curl_easy_getinfo", referenced from:

  Aws::Http::CurlHttpClient::MakeRequest(Aws::Http::HttpRequest&, 
Aws::Utils::RateLimits::RateLimiterInterface*, 
Aws::Utils::RateLimits::RateLimiterInterface*) const in 
libaws-cpp-sdk-core.a(CurlHttpClient.cpp.o)

  "_curl_easy_init", referenced from:

  Aws::Http::CurlHandleContainer::CheckAndGrowPool() in 
libaws-cpp-sdk-core.a(CurlHandleContainer.cpp.o)

  "_curl_easy_perform", referenced from:

  Aws::Http::CurlHttpClient::MakeRequest(Aws::Http::HttpRequest&, 
Aws::Utils::RateLimits::RateLimiterInterface*, 
Aws::Utils::RateLimits::RateLimiterInterface*) const in 
libaws-cpp-sdk-core.a(CurlHttpClient.cpp.o)

  "_curl_easy_reset", referenced from:

  Aws::Http::CurlHandleContainer::ReleaseCurlHandle(void*) in 
libaws-cpp-sdk-core.a(CurlHand

[CMake] How to set libcurl library path and the library name?

2017-04-27 Thread Alex Chen
Hi,

    I am trying to build AWS CPP SDK for the iOS from downloaded source. The 
compilation seems to go well but it fails at link time.  My CMake invocation is

 

/Applications/CMake.app/Contents/bin/cmake -Wno-dev 
-DBUILD_ONLY=s3;s3-encryption 
-DCMAKE_OSX_SYSROOT=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk
 -DCMAKE_OSX_ARCHITECTURES=arm64 -DCMAKE_SYSTEM_NAME=Darwin 
-DCMAKE_SHARED_LINKER_FLAGS=-framework Foundation -framework Security 
-DCMAKE_EXE_LINKER_FLAGS=-framework Foundation -framework Security 
-DCMAKE_PREFIX_PATH=/Volumes/Workspace/Prebuilt/Release-iphoneos/libcurl 
-DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS=-O3 
-DCMAKE_INSTALL_PREFIX=/Volumes/Workspace/AWS/CppSDK/1.0.101/iPhoneOS/arm64/Release
 -DBUILD_SHARED_LIBS=off -DCPP_STANDARD=14 
-DCURL_INCLUDE_DIR=/Volumes/Workspace/Prebuilt/Release-iphoneos/libcurl/include64
 -DCURL_LIBRARIES=libcurl_7.51 -DSTATIC_LINKING=1 -DTARGET_ARCH=Apple 
/Volumes/Workspace/FMSOURCE/Shared/AWS/CppSDK/aws-sdk-cpp-1.0.101

 

The output from CMake looks like it finds the include path of libcurl but no 
the library.

 

-- Found Git: /usr/bin/git (found version "2.11.0 (Apple Git-81)")

-- Building AWS libraries as static objects

fatal: Not a git repository (or any parent up to mount point /Volumes/Workspace)

Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).

-- Building project version: 1.0.101

-- The CXX compiler identification is AppleClang 8.1.0.8020042

-- Check for working CXX compiler: 
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++

-- Check for working CXX compiler: 
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++
 -- works

-- Detecting CXX compiler ABI info

-- Detecting CXX compiler ABI info - done

-- Detecting CXX compile features

-- Detecting CXX compile features - done

-- Found ZLIB: /usr/lib/libz.dylib (found version "1.2.8")

--   Zlib include directory: 
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/usr/include

--   Zlib library: /usr/lib/libz.dylib

-- Encryption: CommonCrypto

-- Http client: Curl

-- Found CURL: /usr/lib/libcurl.dylib (found version "7.51.0")

--   Curl include directory: 
/Volumes/Workspace/FMSOURCE/Shared/Prebuilt/Release-iphoneos/libcurl/include64

--   Curl library: /usr/lib/libcurl.dylib

-- Considering s3

-- Considering s3-encryption

-- The C compiler identification is AppleClang 8.1.0.8020042

-- Check for working C compiler: 
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang

-- Check for working C compiler: 
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang
 -- works

-- Detecting C compiler ABI info

-- Detecting C compiler ABI info - done

-- Detecting C compile features

-- Detecting C compile features - done

-- Updating version info to 1.0.101

-- Custom memory management disabled

-- Configuring done

-- Generating done

 

The linking errors look like this:

 

[ 92%] Linking CXX executable aws-cpp-sdk-s3-integration-tests

ld: warning: ignoring file /usr/lib/libcurl.dylib, missing required 
architecture arm64 in file /usr/lib/libcurl.dylib (2 slices)

Undefined symbols for architecture arm64:

  "_curl_easy_cleanup", referenced from:

  Aws::Http::CurlHandleContainer::~CurlHandleContainer() in 
libaws-cpp-sdk-core.a(CurlHandleContainer.cpp.o)

  "_curl_easy_getinfo", referenced from:

  Aws::Http::CurlHttpClient::MakeRequest(Aws::Http::HttpRequest&, 
Aws::Utils::RateLimits::RateLimiterInterface*, 
Aws::Utils::RateLimits::RateLimiterInterface*) const in 
libaws-cpp-sdk-core.a(CurlHttpClient.cpp.o)

  "_curl_easy_init", referenced from:

  Aws::Http::CurlHandleContainer::CheckAndGrowPool() in 
libaws-cpp-sdk-core.a(CurlHandleContainer.cpp.o)

  "_curl_easy_perform", referenced from:

  Aws::Http::CurlHttpClient::MakeRequest(Aws::Http::HttpRequest&, 
Aws::Utils::RateLimits::RateLimiterInterface*, 
Aws::Utils::RateLimits::RateLimiterInterface*) const in 
libaws-cpp-sdk-core.a(CurlHttpClient.cpp.o)

  "_curl_easy_reset", referenced from:

  Aws::Http::CurlHandleContainer::ReleaseCurlHandle(void*) in 
libaws-cpp-sdk-core.a(CurlHandleContainer.cpp.o)

  "_curl_easy_setopt", referenced from:

  SetOptCodeForHttpMethod(void*, Aws::Http::HttpRequest const&) in 
libaws-cpp-sdk-core.a(CurlHttpClient.cpp.o)

  Aws::Http::CurlHttpClient::MakeRequest(Aws::Http::HttpRequest&, 
Aws::Utils::RateLimits::RateLimiterInterface*, 
Aws::Utils::RateLimits::RateLimiterInterface*) const in 
libaws-cpp-sdk-core.a(CurlHttpClient.cpp.o)

  Aws::Http::CurlHandleContainer::CheckAndGrowPool() in 
libaws-cpp-sdk-core.a(CurlHandleContainer.cpp.o)

  Aws::Http::CurlHandleContainer::ReleaseCurlHandle(void*) in 
libaws-cpp-sdk-core.a(CurlHandleContainer.cpp.o)

  Aws::Http::Cur

[CMake] iOS IPA Creation Xcode 8.3.x

2017-04-27 Thread Wesio
We extensively use CMake in one of our projects and have been successfully
using add_executable with MACOSX_BUNDLE to produce iOS .app artefacts and
then using a custom target to run (via xcrun) PackageApplication to
transform the .app to a .ipa.

Unfortunately with Xcode 8.3.x PackageApplication has now been removed in
favour of xcodebuild and -exportArchive, however issuing the new commands
causes a rebuild in a different folder which given the size of our project
is very slow.

Is there a correct way to produce the xcarchive using cmake (and
subsequently the .ipa) or do I need to persevere trying to get this to work
using custom targets?

Thanks :)



--
View this message in context: 
http://cmake.3232098.n2.nabble.com/iOS-IPA-Creation-Xcode-8-3-x-tp7595423.html
Sent from the CMake mailing list archive at Nabble.com.
-- 

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/cmake