Re: [CMake] Link order (Ubuntu)

2018-11-05 Thread Bo Zhou
Hi

This is the classical issue of GNU toolchain for many years, usually super
painful when the program has to be linked with several static libraries.

One easy way to solve this issue is that you could specify the same library
for multiple times if the manual order really doesn't work well, then the
generated binary might have the complete symbols.

Thanks very much.

On Tue, Nov 6, 2018 at 9:53 AM scrgiorgio  wrote:

> i have the following CMakeList.txt:
>
>
> add_library(ImpLib SHARED IMPORTED GLOBAL)
> set_property(TARGET ImpLib APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES
> ...)
> set_target_properties(ImpLib PROPERTIES IMPORTED_LOCATION ...)
>
> add_library(A SHARED)
> # COMMENTED! A uses ImpLib but cannot link it because some third-party
> executables requires 'run-time symbol resolution'
> # target_link_libraries(A PUBLIC  ImpLib )
>
> add_library(B SHARED)
> target_link_libraries(B PUBLIC A)
> # COMMENTED! B uses ImpLib but cannot link it for the same previous reason
> # target_link_libraries(B PUBLIC  ImpLib )
>
> # my executable requires ImpLib explicit/default cmake linking
> add_executable(MyExe)
> target_link_libraries(MyExe B)
> target_link_libraries(MyExe ImpLib )
>
> The CMake generated link order is (g++ -o  ): "B;ImportedExtLib;A"
> But in this way A cannot find symbols from ImpLib (at least using g++).
>
> The right order is: "B;A;ImpLib"
>
> I tried with "target_link_libraries(A INTERFACE ImpLib)" but then B will
> link ImpLib
>
> I tried "set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS}
> -Wl,--start-group")" but sometimes it does not work.
>
> is it doable? Can I force the right order?
>
>
>
>
>
> --
> Sent from: http://cmake.3232098.n2.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:
> 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


[CMake] Link order (Ubuntu)

2018-11-05 Thread scrgiorgio
i have the following CMakeList.txt:


add_library(ImpLib SHARED IMPORTED GLOBAL)
set_property(TARGET ImpLib APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES
...)
set_target_properties(ImpLib PROPERTIES IMPORTED_LOCATION ...)

add_library(A SHARED)
# COMMENTED! A uses ImpLib but cannot link it because some third-party
executables requires 'run-time symbol resolution' 
# target_link_libraries(A PUBLIC  ImpLib )

add_library(B SHARED)
target_link_libraries(B PUBLIC A)
# COMMENTED! B uses ImpLib but cannot link it for the same previous reason
# target_link_libraries(B PUBLIC  ImpLib )

# my executable requires ImpLib explicit/default cmake linking
add_executable(MyExe)
target_link_libraries(MyExe B)
target_link_libraries(MyExe ImpLib )

The CMake generated link order is (g++ -o  ): "B;ImportedExtLib;A"
But in this way A cannot find symbols from ImpLib (at least using g++).

The right order is: "B;A;ImpLib"

I tried with "target_link_libraries(A INTERFACE ImpLib)" but then B will
link ImpLib

I tried "set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS}
-Wl,--start-group")" but sometimes it does not work.

is it doable? Can I force the right order?





--
Sent from: http://cmake.3232098.n2.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:
https://cmake.org/mailman/listinfo/cmake


[CMake] Link order problem (Ubuntu)

2018-11-05 Thread scrgiorgio
i have the following CMakeList.txt:



the CMake generated link order is (g++ -o  ):



But in this way A cannot find symbols from ImpLib (at least using g++).

The right order is



Is it doable? 

I tried:

 

but then B will link ImpLib

I tried:



but sometimes it does not work.

is it doable? Can I force the right order?





--
Sent from: http://cmake.3232098.n2.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:
https://cmake.org/mailman/listinfo/cmake


Re: [CMake] Default library name?

2018-11-05 Thread Alexander Neundorf
On 2018 M11 5, Mon 13:20:32 CET Robert Maynard wrote:
> Yes, you can do that.  I don't know if there is an easier way than the
> following:

you could have a look at the following variables:
CMAKE_STATIC_LIBRARY_PREFIX
CMAKE_STATIC_LIBRARY_SUFFIX
CMAKE_SHARED_LIBRARY_PREFIX
CMAKE_SHARED_LIBRARY_SUFFIX
CMAKE_EXECUTABLE_SUFFIX

Alex

-- 

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] Default library name?

2018-11-05 Thread Hendrik Greving
>> So you could pass the name of the target as command line parameter.

We do all sorts of string operations on it. This wouldn't work with the
generator expression.

On Mon, Nov 5, 2018 at 11:12 AM Robert Maynard 
wrote:

> The add_test command support generator expressions as part of the
> COMMAND component (
> https://cmake.org/cmake/help/v3.11/command/add_test.html). So you
> could pass the name of the target as command line parameter.
> On Mon, Nov 5, 2018 at 1:43 PM Hendrik Greving
>  wrote:
> >
> > I see. We may be able to work with this. Thanks a lot!
> > generator expressions don't work with LINK_FLAGS (though I heard they
> will be supported in LINK_OPTIONS in 3.13, which would require us to
> migrate. But even then, generator expressions don't support and logic
> around this like file(GNERATE ..) or string(REPLACE ..) that our (cmake-)
> files use frequently. i.e. we are changing paths to upload on an Android
> target. Another big issue is that we are using the target name for add_test
> commands, i.e. in order to compute some library names based on the target
> name as part of the test command. I can't use file(GENERATE to derive the
> target name and put the add_test part into a .cmake script because add_test
> is not scriptable.
> > Thanks.
> >
> > On Mon, Nov 5, 2018 at 10:21 AM Robert Maynard <
> robert.mayn...@kitware.com> wrote:
> >>
> >> Yes, you can do that.  I don't know if there is an easier way than the
> >> following:
> >>
> >> function(get_full_name target full_name)
> >> get_target_property(name ${target} NAME)
> >> get_target_property(suffix ${target} SUFFIX)
> >> get_target_property(prefix ${target} PREFIX)
> >> get_target_property(type ${target} TYPE)
> >>
> >> if(NOT prefix)
> >>   set(prefix ${CMAKE_${type}_PREFIX})
> >> endif()
> >>
> >> if(NOT suffix)
> >>   set(suffix ${CMAKE_${type}_SUFFIX})
> >> endif()
> >>
> >> set(${full_name} "${prefix}${name}${suffix}" PARENT_SCOPE)
> >> endfunction()
> >>
> >> You will need to modify it if you want to support custom per config
> >> names. Unless you really needs this information at configuration you
> >> should use the $ generator expression as it will
> >> always be correct.
> >> On Mon, Nov 5, 2018 at 1:04 PM Hendrik Greving
> >>  wrote:
> >> >
> >> > The name property doesn't return the library name for libraries, i.e.
> on Linux, no lib prefix and .so suffix. Also the PREFIX and SUFFIX (see
> above) don't appear to be set. Is it possible to retrieve the default
> library name on a given platform?
> >> >
> >> > On Mon, Nov 5, 2018 at 9:57 AM Robert Maynard <
> robert.mayn...@kitware.com> wrote:
> >> >>
> >> >> That is correct behavior. OUTPUT_NAME is a customization point to
> >> >> allow projects to change the name, so if it isn't set CMake will use
> >> >> the NAME property.
> >> >> On Mon, Nov 5, 2018 at 12:42 PM Hendrik Greving
> >> >>  wrote:
> >> >> >
> >> >> > I think OUTPUT_NAME is not set by default. I am getting
> var-NOTFOUND
> >> >> > Same for RUNTIME_OUTPUT_NAME, LIBRARY_OUTPUT_NAME, PREFIX and
> SUFFIX
> >> >> >
> >> >> > On Mon, Nov 5, 2018 at 9:26 AM Robert Maynard <
> robert.mayn...@kitware.com> wrote:
> >> >> >>
> >> >> >> At configure time you query OUTPUT_NAME target property
> >> >> >> (https://cmake.org/cmake/help/v3.11/prop_tgt/OUTPUT_NAME.html)
> and if
> >> >> >> not set you use NAME (
> >> >> >> https://cmake.org/cmake/help/v3.11/prop_tgt/NAME.html )
> >> >> >> On Mon, Nov 5, 2018 at 11:48 AM Hendrik Greving
> >> >> >>  wrote:
> >> >> >> >
> >> >> >> > Hi, is there a way to get the default library or executable
> name at configure time (except obsolete LOCATION property)? i.e.
> lib${target_name}.so in Linux, where target_name is NAME target property?
> Thanks in advance.
> >> >> >> > --
> >> >> >> >
> >> >> >> > 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
>
-- 

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

V

Re: [CMake] Default library name?

2018-11-05 Thread Robert Maynard
The add_test command support generator expressions as part of the
COMMAND component (
https://cmake.org/cmake/help/v3.11/command/add_test.html). So you
could pass the name of the target as command line parameter.
On Mon, Nov 5, 2018 at 1:43 PM Hendrik Greving
 wrote:
>
> I see. We may be able to work with this. Thanks a lot!
> generator expressions don't work with LINK_FLAGS (though I heard they will be 
> supported in LINK_OPTIONS in 3.13, which would require us to migrate. But 
> even then, generator expressions don't support and logic around this like 
> file(GNERATE ..) or string(REPLACE ..) that our (cmake-) files use 
> frequently. i.e. we are changing paths to upload on an Android target. 
> Another big issue is that we are using the target name for add_test commands, 
> i.e. in order to compute some library names based on the target name as part 
> of the test command. I can't use file(GENERATE to derive the target name and 
> put the add_test part into a .cmake script because add_test is not scriptable.
> Thanks.
>
> On Mon, Nov 5, 2018 at 10:21 AM Robert Maynard  
> wrote:
>>
>> Yes, you can do that.  I don't know if there is an easier way than the
>> following:
>>
>> function(get_full_name target full_name)
>> get_target_property(name ${target} NAME)
>> get_target_property(suffix ${target} SUFFIX)
>> get_target_property(prefix ${target} PREFIX)
>> get_target_property(type ${target} TYPE)
>>
>> if(NOT prefix)
>>   set(prefix ${CMAKE_${type}_PREFIX})
>> endif()
>>
>> if(NOT suffix)
>>   set(suffix ${CMAKE_${type}_SUFFIX})
>> endif()
>>
>> set(${full_name} "${prefix}${name}${suffix}" PARENT_SCOPE)
>> endfunction()
>>
>> You will need to modify it if you want to support custom per config
>> names. Unless you really needs this information at configuration you
>> should use the $ generator expression as it will
>> always be correct.
>> On Mon, Nov 5, 2018 at 1:04 PM Hendrik Greving
>>  wrote:
>> >
>> > The name property doesn't return the library name for libraries, i.e. on 
>> > Linux, no lib prefix and .so suffix. Also the PREFIX and SUFFIX (see 
>> > above) don't appear to be set. Is it possible to retrieve the default 
>> > library name on a given platform?
>> >
>> > On Mon, Nov 5, 2018 at 9:57 AM Robert Maynard  
>> > wrote:
>> >>
>> >> That is correct behavior. OUTPUT_NAME is a customization point to
>> >> allow projects to change the name, so if it isn't set CMake will use
>> >> the NAME property.
>> >> On Mon, Nov 5, 2018 at 12:42 PM Hendrik Greving
>> >>  wrote:
>> >> >
>> >> > I think OUTPUT_NAME is not set by default. I am getting var-NOTFOUND
>> >> > Same for RUNTIME_OUTPUT_NAME, LIBRARY_OUTPUT_NAME, PREFIX and SUFFIX
>> >> >
>> >> > On Mon, Nov 5, 2018 at 9:26 AM Robert Maynard 
>> >> >  wrote:
>> >> >>
>> >> >> At configure time you query OUTPUT_NAME target property
>> >> >> (https://cmake.org/cmake/help/v3.11/prop_tgt/OUTPUT_NAME.html) and if
>> >> >> not set you use NAME (
>> >> >> https://cmake.org/cmake/help/v3.11/prop_tgt/NAME.html )
>> >> >> On Mon, Nov 5, 2018 at 11:48 AM Hendrik Greving
>> >> >>  wrote:
>> >> >> >
>> >> >> > Hi, is there a way to get the default library or executable name at 
>> >> >> > configure time (except obsolete LOCATION property)? i.e. 
>> >> >> > lib${target_name}.so in Linux, where target_name is NAME target 
>> >> >> > property? Thanks in advance.
>> >> >> > --
>> >> >> >
>> >> >> > 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
-- 

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] Default library name?

2018-11-05 Thread Hendrik Greving
I see. We may be able to work with this. Thanks a lot!
generator expressions don't work with LINK_FLAGS (though I heard they will
be supported in LINK_OPTIONS in 3.13, which would require us to migrate.
But even then, generator expressions don't support and logic around this
like file(GNERATE ..) or string(REPLACE ..) that our (cmake-) files use
frequently. i.e. we are changing paths to upload on an Android target.
Another big issue is that we are using the target name for add_test
commands, i.e. in order to compute some library names based on the target
name as part of the test command. I can't use file(GENERATE to derive the
target name and put the add_test part into a .cmake script because add_test
is not scriptable.
Thanks.

On Mon, Nov 5, 2018 at 10:21 AM Robert Maynard 
wrote:

> Yes, you can do that.  I don't know if there is an easier way than the
> following:
>
> function(get_full_name target full_name)
> get_target_property(name ${target} NAME)
> get_target_property(suffix ${target} SUFFIX)
> get_target_property(prefix ${target} PREFIX)
> get_target_property(type ${target} TYPE)
>
> if(NOT prefix)
>   set(prefix ${CMAKE_${type}_PREFIX})
> endif()
>
> if(NOT suffix)
>   set(suffix ${CMAKE_${type}_SUFFIX})
> endif()
>
> set(${full_name} "${prefix}${name}${suffix}" PARENT_SCOPE)
> endfunction()
>
> You will need to modify it if you want to support custom per config
> names. Unless you really needs this information at configuration you
> should use the $ generator expression as it will
> always be correct.
> On Mon, Nov 5, 2018 at 1:04 PM Hendrik Greving
>  wrote:
> >
> > The name property doesn't return the library name for libraries, i.e. on
> Linux, no lib prefix and .so suffix. Also the PREFIX and SUFFIX (see above)
> don't appear to be set. Is it possible to retrieve the default library name
> on a given platform?
> >
> > On Mon, Nov 5, 2018 at 9:57 AM Robert Maynard <
> robert.mayn...@kitware.com> wrote:
> >>
> >> That is correct behavior. OUTPUT_NAME is a customization point to
> >> allow projects to change the name, so if it isn't set CMake will use
> >> the NAME property.
> >> On Mon, Nov 5, 2018 at 12:42 PM Hendrik Greving
> >>  wrote:
> >> >
> >> > I think OUTPUT_NAME is not set by default. I am getting var-NOTFOUND
> >> > Same for RUNTIME_OUTPUT_NAME, LIBRARY_OUTPUT_NAME, PREFIX and SUFFIX
> >> >
> >> > On Mon, Nov 5, 2018 at 9:26 AM Robert Maynard <
> robert.mayn...@kitware.com> wrote:
> >> >>
> >> >> At configure time you query OUTPUT_NAME target property
> >> >> (https://cmake.org/cmake/help/v3.11/prop_tgt/OUTPUT_NAME.html) and
> if
> >> >> not set you use NAME (
> >> >> https://cmake.org/cmake/help/v3.11/prop_tgt/NAME.html )
> >> >> On Mon, Nov 5, 2018 at 11:48 AM Hendrik Greving
> >> >>  wrote:
> >> >> >
> >> >> > Hi, is there a way to get the default library or executable name
> at configure time (except obsolete LOCATION property)? i.e.
> lib${target_name}.so in Linux, where target_name is NAME target property?
> Thanks in advance.
> >> >> > --
> >> >> >
> >> >> > 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
>
-- 

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] Default library name?

2018-11-05 Thread Robert Maynard
Yes, you can do that.  I don't know if there is an easier way than the
following:

function(get_full_name target full_name)
get_target_property(name ${target} NAME)
get_target_property(suffix ${target} SUFFIX)
get_target_property(prefix ${target} PREFIX)
get_target_property(type ${target} TYPE)

if(NOT prefix)
  set(prefix ${CMAKE_${type}_PREFIX})
endif()

if(NOT suffix)
  set(suffix ${CMAKE_${type}_SUFFIX})
endif()

set(${full_name} "${prefix}${name}${suffix}" PARENT_SCOPE)
endfunction()

You will need to modify it if you want to support custom per config
names. Unless you really needs this information at configuration you
should use the $ generator expression as it will
always be correct.
On Mon, Nov 5, 2018 at 1:04 PM Hendrik Greving
 wrote:
>
> The name property doesn't return the library name for libraries, i.e. on 
> Linux, no lib prefix and .so suffix. Also the PREFIX and SUFFIX (see above) 
> don't appear to be set. Is it possible to retrieve the default library name 
> on a given platform?
>
> On Mon, Nov 5, 2018 at 9:57 AM Robert Maynard  
> wrote:
>>
>> That is correct behavior. OUTPUT_NAME is a customization point to
>> allow projects to change the name, so if it isn't set CMake will use
>> the NAME property.
>> On Mon, Nov 5, 2018 at 12:42 PM Hendrik Greving
>>  wrote:
>> >
>> > I think OUTPUT_NAME is not set by default. I am getting var-NOTFOUND
>> > Same for RUNTIME_OUTPUT_NAME, LIBRARY_OUTPUT_NAME, PREFIX and SUFFIX
>> >
>> > On Mon, Nov 5, 2018 at 9:26 AM Robert Maynard  
>> > wrote:
>> >>
>> >> At configure time you query OUTPUT_NAME target property
>> >> (https://cmake.org/cmake/help/v3.11/prop_tgt/OUTPUT_NAME.html) and if
>> >> not set you use NAME (
>> >> https://cmake.org/cmake/help/v3.11/prop_tgt/NAME.html )
>> >> On Mon, Nov 5, 2018 at 11:48 AM Hendrik Greving
>> >>  wrote:
>> >> >
>> >> > Hi, is there a way to get the default library or executable name at 
>> >> > configure time (except obsolete LOCATION property)? i.e. 
>> >> > lib${target_name}.so in Linux, where target_name is NAME target 
>> >> > property? Thanks in advance.
>> >> > --
>> >> >
>> >> > 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
-- 

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] Default library name?

2018-11-05 Thread Hendrik Greving
The name property doesn't return the library name for libraries, i.e. on
Linux, no lib prefix and .so suffix. Also the PREFIX and SUFFIX (see above)
don't appear to be set. Is it possible to retrieve the default library name
on a given platform?

On Mon, Nov 5, 2018 at 9:57 AM Robert Maynard 
wrote:

> That is correct behavior. OUTPUT_NAME is a customization point to
> allow projects to change the name, so if it isn't set CMake will use
> the NAME property.
> On Mon, Nov 5, 2018 at 12:42 PM Hendrik Greving
>  wrote:
> >
> > I think OUTPUT_NAME is not set by default. I am getting var-NOTFOUND
> > Same for RUNTIME_OUTPUT_NAME, LIBRARY_OUTPUT_NAME, PREFIX and SUFFIX
> >
> > On Mon, Nov 5, 2018 at 9:26 AM Robert Maynard <
> robert.mayn...@kitware.com> wrote:
> >>
> >> At configure time you query OUTPUT_NAME target property
> >> (https://cmake.org/cmake/help/v3.11/prop_tgt/OUTPUT_NAME.html) and if
> >> not set you use NAME (
> >> https://cmake.org/cmake/help/v3.11/prop_tgt/NAME.html )
> >> On Mon, Nov 5, 2018 at 11:48 AM Hendrik Greving
> >>  wrote:
> >> >
> >> > Hi, is there a way to get the default library or executable name at
> configure time (except obsolete LOCATION property)? i.e.
> lib${target_name}.so in Linux, where target_name is NAME target property?
> Thanks in advance.
> >> > --
> >> >
> >> > 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
>
-- 

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] Default library name?

2018-11-05 Thread Robert Maynard
That is correct behavior. OUTPUT_NAME is a customization point to
allow projects to change the name, so if it isn't set CMake will use
the NAME property.
On Mon, Nov 5, 2018 at 12:42 PM Hendrik Greving
 wrote:
>
> I think OUTPUT_NAME is not set by default. I am getting var-NOTFOUND
> Same for RUNTIME_OUTPUT_NAME, LIBRARY_OUTPUT_NAME, PREFIX and SUFFIX
>
> On Mon, Nov 5, 2018 at 9:26 AM Robert Maynard  
> wrote:
>>
>> At configure time you query OUTPUT_NAME target property
>> (https://cmake.org/cmake/help/v3.11/prop_tgt/OUTPUT_NAME.html) and if
>> not set you use NAME (
>> https://cmake.org/cmake/help/v3.11/prop_tgt/NAME.html )
>> On Mon, Nov 5, 2018 at 11:48 AM Hendrik Greving
>>  wrote:
>> >
>> > Hi, is there a way to get the default library or executable name at 
>> > configure time (except obsolete LOCATION property)? i.e. 
>> > lib${target_name}.so in Linux, where target_name is NAME target property? 
>> > Thanks in advance.
>> > --
>> >
>> > 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
-- 

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] Default library name?

2018-11-05 Thread Hendrik Greving
I think OUTPUT_NAME is not set by default. I am getting var-NOTFOUND
Same for RUNTIME_OUTPUT_NAME, LIBRARY_OUTPUT_NAME, PREFIX and SUFFIX

On Mon, Nov 5, 2018 at 9:26 AM Robert Maynard 
wrote:

> At configure time you query OUTPUT_NAME target property
> (https://cmake.org/cmake/help/v3.11/prop_tgt/OUTPUT_NAME.html) and if
> not set you use NAME (
> https://cmake.org/cmake/help/v3.11/prop_tgt/NAME.html )
> On Mon, Nov 5, 2018 at 11:48 AM Hendrik Greving
>  wrote:
> >
> > Hi, is there a way to get the default library or executable name at
> configure time (except obsolete LOCATION property)? i.e.
> lib${target_name}.so in Linux, where target_name is NAME target property?
> Thanks in advance.
> > --
> >
> > 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
>
-- 

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] Default library name?

2018-11-05 Thread Robert Maynard
At configure time you query OUTPUT_NAME target property
(https://cmake.org/cmake/help/v3.11/prop_tgt/OUTPUT_NAME.html) and if
not set you use NAME (
https://cmake.org/cmake/help/v3.11/prop_tgt/NAME.html )
On Mon, Nov 5, 2018 at 11:48 AM Hendrik Greving
 wrote:
>
> Hi, is there a way to get the default library or executable name at configure 
> time (except obsolete LOCATION property)? i.e. lib${target_name}.so in Linux, 
> where target_name is NAME target property? Thanks in advance.
> --
>
> 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
-- 

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] Default library name?

2018-11-05 Thread Hendrik Greving
Hi, is there a way to get the default library or executable name at
configure time (except obsolete LOCATION property)? i.e.
lib${target_name}.so in Linux, where target_name is NAME target property?
Thanks in advance.
-- 

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