[waffle] [PATCH v2 2/4] waffle: add support for building Waffle using NaCl toolchain
Chad Versace
chad.versace at intel.com
Mon Dec 22 14:28:58 PST 2014
On 12/21/2014 07:53 AM, Emil Velikov wrote:
> On 17 December 2014 at 10:17, Tapani Pälli <tapani.palli at intel.com> wrote:
>> Patch adds changes required to use NaCl compiler and libraries to
>> build Waffle. Build can be configured to use specific version of
>> the NaCl SDK, toolchain for the build needs to be selected with
>> cmake variable CMAKE_TOOLCHAIN_FILE.
>>
>> Example command line to configure a build:
>>
>> cmake -Dwaffle_has_nacl=ON \
>> -Dnacl_sdk_path=/home/tpalli/nacl/nacl_sdk \
>> -Dnacl_version=pepper_39 \
> Tbh I'm not a huge fan of having those piped via the top cmake into
> the toolchain file.
>
> Quick look indicates that nacl_sdk as of Dec 2011 has/is defining NACL_SDL_ROOT.
> Perhaps we can reuse that one and error out if it's missing.
> Considering we can use (have tested only) a single version we could
> just hardcode it into the toolchain file ?
Emil, I don't understand. What do you mean that nacl_sdk defines NACL_SDK_ROOT?
I see that some GNU Makefiles in the SDK define NACL_SDK_ROOT, but I failed
to find any CMake files in the SDK.
I also think that the CMake configure line can be improved and the toolchain files
simplified. I'll suggest those changes in a different subthread, though.
>> -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-nacl-linux-glibc-x86_64.cmake \
>> -DCMAKE_BUILD_TYPE=Release \
>> .
>> diff --git a/cmake/Modules/WaffleValidateOptions.cmake b/cmake/Modules/WaffleValidateOptions.cmake
>> index ea60b0e..1275463 100644
>> --- a/cmake/Modules/WaffleValidateOptions.cmake
>> +++ b/cmake/Modules/WaffleValidateOptions.cmake
>> @@ -46,11 +46,38 @@ endif()
>>
>> if(waffle_on_linux)
>> if(NOT waffle_has_glx AND NOT waffle_has_wayland AND
>> - NOT waffle_has_x11_egl AND NOT waffle_has_gbm)
>> + NOT waffle_has_x11_egl AND NOT waffle_has_gbm AND
>> + NOT waffle_has_nacl)
>> message(FATAL_ERROR
>> "Must enable at least one of: "
>> "waffle_has_glx, waffle_has_wayland, "
>> - "waffle_has_x11_egl, waffle_has_gbm.")
>> + "waffle_has_x11_egl, waffle_has_gbm, "
>> + "waffle_has_nacl.")
>> + endif()
>> + if(waffle_has_nacl)
>> + if(NOT EXISTS ${nacl_sdk_path})
>> + message(FATAL_ERROR "NaCl SDK path not found : ${nacl_sdk_path}")
>> + endif()
>> +
> In the future as we add a proper build check, we can add it into the
> auto-detection. Can you add a single line of comment ?
I don't see a way for Waffle's CMake to autodetect the nacl_sdk_path, because the
NaCl SDK is usually (I think) installed by the user into his home directory in a custom location.
For example:
Tapani: ~/nacl/nacl_sdk
Chad: ~/opt/nacl_sdk
Emil: ????
I admit that I'm a complete NaCl newbie, though. Emil, do you have some plan
on how to perform autodetection?
>> + if(NOT EXISTS ${CMAKE_TOOLCHAIN_FILE})
>> + message(FATAL_ERROR "Toolchain for Nacl not found. This must be "
>> + "configured using CMAKE_TOOLCHAIN_FILE.")
>> + endif()
>> +
> Don't think we need this check, but I'll leave it up-to Chad to be the
> final judge.
Correct. CMake validates CMAKE_TOOLCHAIN_FILE very early during configuration.
If I understand correctly, CMake validates it before reading any of the
project's CMake files.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 884 bytes
Desc: OpenPGP digital signature
URL: <http://lists.freedesktop.org/archives/waffle/attachments/20141222/40aba724/attachment.sig>
More information about the waffle
mailing list