[Cmake-commits] CMake branch, master, updated. v3.10.1-641-g0822934

2017-12-16 Thread Kitware Robot
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "CMake".

The branch, master has been updated
   via  08229348a89ee4b9da893ed2ba448cb2a94ce572 (commit)
  from  d4fb3136d5b32ac17ce6bc00d9f62163ba5bd800 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -
https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=08229348a89ee4b9da893ed2ba448cb2a94ce572
commit 08229348a89ee4b9da893ed2ba448cb2a94ce572
Author: Kitware Robot <kwro...@kitware.com>
AuthorDate: Sun Dec 17 00:01:11 2017 -0500
Commit: Kitware Robot <kwro...@kitware.com>
CommitDate: Sun Dec 17 00:01:11 2017 -0500

CMake Nightly Date Stamp

diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake
index 97d923c..0b76996 100644
--- a/Source/CMakeVersion.cmake
+++ b/Source/CMakeVersion.cmake
@@ -1,5 +1,5 @@
 # CMake version number components.
 set(CMake_VERSION_MAJOR 3)
 set(CMake_VERSION_MINOR 10)
-set(CMake_VERSION_PATCH 20171216)
+set(CMake_VERSION_PATCH 20171217)
 #set(CMake_VERSION_RC 1)

---

Summary of changes:
 Source/CMakeVersion.cmake |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)


hooks/post-receive
-- 
CMake
___
Cmake-commits mailing list
Cmake-commits@cmake.org
https://cmake.org/mailman/listinfo/cmake-commits


Re: [CMake] MinGW Compilers on Windows

2017-12-16 Thread Kevan Hashemi

I just want to throw out there, I use MinGW (with MingW Makefiles) wihtout
MSYS just fine for most things including OpenCV which I tested first
day and had no issues... but by then others had already commented.All
that requires is mingw(64).bin and cmake/bin in your path


Thank you, that's reassuring. I have not started on the 64-bit build yet. Kevan


--
Kevan Hashemi, Electrical Engineer
Physics Department, Brandeis University
http://alignment.hep.brandeis.edu/
--

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


Re: [CMake] Installing and exporting multiple configurations of the same library

2017-12-16 Thread Domen Vrankar
2017-12-16 0:18 GMT+01:00 Saad Khattak :

> Hi,
>
> I have 4 configurations (2 for Debug and 2 for Release) and I would like
> to install the libraries such that they are installed in the correct
> directories.
>
> Installing without worrying about configurations looks like this:
>
> install(TARGETS ${LIB_NAME}
> EXPORT ${LIB_NAME}Config
> PUBLIC_HEADER DESTINATION "include/${LIB_NAME}"
> LIBRARY DESTINATION "bin/${LIB_NAME}/"
> ARCHIVE DESTINATION "lib/${LIB_NAME}/"
> )
>
> However, different configurations overwrite the binaries. So instead, I
> did something like this (I'm going over all my configurations in a foreach):
>
> install(TARGETS ${LIB_NAME}
> CONFIGURATIONS DEBUG
> EXPORT ${LIB_NAME}Config
> PUBLIC_HEADER DESTINATION "include/${LIB_NAME}"
> LIBRARY DESTINATION "bin/${LIB_NAME}/debug/"
> ARCHIVE DESTINATION "lib/${LIB_NAME}/debug"
> )
>
> install(TARGETS ${LIB_NAME}
> CONFIGURATIONS RELEASE
> EXPORT ${LIB_NAME}Config
> PUBLIC_HEADER DESTINATION "include/${LIB_NAME}"
> LIBRARY DESTINATION "bin/${LIB_NAME}/release/"
> ARCHIVE DESTINATION "lib/${LIB_NAME}/release/"
> )
>
> however, that results in the error:
> CMake Error: INSTALL(EXPORT ...) includes target "MyLibrary" more than
> once in the export set.
>
> The error makes sense, in that I cannot have multiple exports in the same
> export set, in this case ${LIB_NAME}Config. However, I would like CMake to
> choose a different directory based on the configuration.
>

A simple solution would be to write

install(TARGETS ${LIB_NAME}
CONFIGURATIONS DEBUG
EXPORT ${LIB_NAME}Config-d
PUBLIC_HEADER DESTINATION "include/${LIB_NAME}"
LIBRARY DESTINATION "bin/${LIB_NAME}/debug/"
ARCHIVE DESTINATION "lib/${LIB_NAME}/debug"
)

install(TARGETS ${LIB_NAME}
CONFIGURATIONS RELEASE
EXPORT ${LIB_NAME}Config
PUBLIC_HEADER DESTINATION "include/${LIB_NAME}"
LIBRARY DESTINATION "bin/${LIB_NAME}/release/"
ARCHIVE DESTINATION "lib/${LIB_NAME}/release/"
)

and then use FILE parameter for install(EXPORT ... FILE
${LIB_NAME}Config.cmake ...) command to rename the file from
${LIB_NAME}Config-d.cmake to ${LIB_NAME}Config.cmake.

See here for details:
https://cmake.org/cmake/help/latest/command/install.html#installing-exports.

Also one thing that you can do is set:

set(CMAKE_DEBUG_POSTFIX "-debug")

so that your libraries when built in Debug mode will automatically get
-debug suffix (example: my_lib.so for Release and my_lib-debug.so for
debug). This way you don't need to install the library in two separate sub
directories (named debug/ and release/ in your case).


> Now there is a workaround... sort of. I could name the binaries based on
> the configuration but that doesn't work with our existing build systems. We
> want the following:
>
> lib/${LIB_NAME}/${CONFIG}/libname
>
> Any way to get CMake to install the libraries this way?
>

Not certain what the intended way of doing this debug/releas export on
Linux is as you can only build one build type at a time but the
install(EXPORT ...) command already generates:
${LIB_NAME}Config.cmake and ${LIB_NAME}Config-debug.cmake or
${LIB_NAME}Config-release.cmake

If you install the files in two separate directories and diff them you'll
notice that ${LIB_NAME}Config.cmake files (and Version files if you
generate one) are the same and -debug.cmake and -release.cmake differ so
possibly it's intended to simply override the two files and don't care
about it since the build specific files are exported under different names
and included automatically in ${LIB_NAME}Config.cmake file anyway.

I hope somebody else will shed some light on this part.

Regards,
Domen
-- 

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


[CMake] CMake skip unnecessary compiler checks

2017-12-16 Thread Saad Khattak
Hi,

We have about a hundred projects that use CMake to do the compilation. Each
night, we do a clean build and CMake performs unnecessary compiler checks
for every single project:

-- The C compiler identification is MSVC 17.0.61030.0
-- The CXX compiler identification is MSVC 17.0.61030.0
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual
Studio 11.0/VC/bin/x86_amd64/cl.exe
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual
Studio 11.0/VC/bin/x86_amd64/cl.exe -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual
Studio 11.0/VC/bin/x86_amd64/cl.exe
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual
Studio 11.0/VC/bin/x86_amd64/cl.exe -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done
-- Generating done
-- Build files have been written to: x

Now I can understand if CMake needs to do it once, but when it does this
100 times, the build slows down a few seconds per project for no reason
especially when we know, after the first project generation, that things
are working.

Using the workaround "project(myProj NONE)" is not good because it has
other side effects. I would like CMake to cache the result of the above
checks somehow for subsequent projects.

Also, just as an FYI for anyone on Linux, CMake's compiler identification
and checking for a working compiler works almost instantaneously on Linux
(e.g. trying the same on Linux will start the generation process pretty
much instantaneously). On Windows this takes a while (about 8 seconds). Not
sure why there is a big discrepancy in the way the compilers are identified
and checked.

Thank you,
Saad
-- 

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