Hi,

Could you create a simple compiler wrapper script, and point the CMAKE_*_COMPILER variables there:

#!/bin/bash
export INTEL_LICENSE_FILE=/usr/local/intel/license
/path/to/ifort "$@"

Regards,

Juan


On 7/8/18 8:41 PM, Clune, Thomas L. (GSFC-6101) wrote:
Unfortunately, I cannot dictate where the sysadmins are putting the license file.     I can of course put a copy in  /home/<user>/Licenses which is another location that Intel looks by default.   And if there is no better solution, I will provide instructions to all of our developers on making copies themselves on our various development platforms.    Or at that point I’ll just ask them all to set the environment variable in their shell startup files.

I’m still a bit astonished that something as simple as this is essentially unsupported.    It is particularly frustrating as try_run() successfully exercises the compiler while the run-of-the-mill compiler invocations under make do not. Sort of makes sense though.  CMake launches try_run() in a subshell and therefore it sees the env variable I am setting with set(ENV…).   OTOH, the subsequent make commands are not subshells and therefore need a separate mechanism to see that env variable.

*From: *Stephen McDowell <sjm...@cornell.edu>
*Date: *Saturday, July 7, 2018 at 2:25 AM
*To: *Marc CHEVRIER <marc.chevr...@gmail.com>
*Cc: *"Clune, Thomas L. (GSFC-6101)" <thomas.l.cl...@nasa.gov>, CMake MailingList <cmake@cmake.org> *Subject: *Re: [CMake] specifying path for license file for commercial compiler?

I agree that a toolchain file is more appropriate, noting that typically modifying the environment variables is much more common for there's compilers (particularly using environment modules).

However, since you've started clearly you would rather not set the environment variables, there may be an easier "hack".

Intel also looks in /opt/intel/licenses for any .lic files. So if you want, you can just create a symbolic link or copy your license file there :)

On Fri, Jul 6, 2018, 10:49 PM Marc CHEVRIER <marc.chevr...@gmail.com <mailto:marc.chevr...@gmail.com>> wrote:

    May be using a toolchain file is more appropriate. See

    https://cmake.org/cmake/help/v3.12/manual/cmake-toolchains.7.html

    Le ven. 6 juil. 2018 à 22:59, Clune, Thomas L. (GSFC-6101)
    <thomas.l.cl...@nasa.gov <mailto:thomas.l.cl...@nasa.gov>> a écrit :

        To use the Intel compiler, one must use an environment variable
        that specifies the path to the license file.  E.g.,

             export INTEL_LICENSE_FILE=/usr/local/intel/license

        Other commercial compilers use a very similar mechanism.    I
        had hoped to capture such information in a cache file so that I
        could avoid polluting the shell where I am invoking cmake:

             % cmake -C my-cache <src-dir>

        Such a cache file could  look like:

             set(CMAKE_Fortran_COMPILER
        
"/usr/local/intel/2018/compilers_and_libraries_2018.3.222/linux/bin/intel64/ifort"
        CACHE path "Fortran compiler")
             set(ENV{INTEL_LICENSE_FILE} "/usr/local/intel/license"
        CACHE path "Intel license")


        Unfortunately, the compiler is not “seeing” the env variable and
        complains that there is no license.     Is there a solution to
        this, or am I forced to set the env variable each time I try to
        build?







--
        Powered by www.kitware.com <http://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:
        https://cmake.org/mailman/listinfo/cmake

--
    Powered by www.kitware.com <http://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:
    https://cmake.org/mailman/listinfo/cmake




--

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:
https://cmake.org/mailman/listinfo/cmake

Reply via email to