Re: [cmake-developers] [CMake 0016030]: CMAKE_ASM_NASM_COMPILE_OBJECT lacks

2016-03-25 Thread Gregor Jasny via cmake-developers
On 25/03/16 19:28, Brad King wrote:
> On 03/25/2016 01:46 PM, Gregor Jasny via cmake-developers wrote:
>> Does anyone see a reason to *not* prepend all  with a ?
> 
> I'm not particularly familiar with the ASM tooling landscape but
> that prepend step is exactly what was done for all other languages
> in commit v3.4.0-rc1~342^2 (Factor an  placeholder out
> of  in rule variables, 2015-07-13):
> 
>   Factor an  placeholder out of  in rule variables
>   https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=c736de7b
> 
> Since prior to that change the -I flags were included in 
> I think leaving ASM changes out of the commit was an oversight.

I pushed a first commit to asm-includes topic but did not merge to next,
yet. Looking at your quoted patch I wonder if  is missing as well?

Thanks,
Gregor

-- 

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-developers


Re: [cmake-developers] [CMake 0016030]: CMAKE_ASM_NASM_COMPILE_OBJECT lacks

2016-03-25 Thread Brad King
On 03/25/2016 01:46 PM, Gregor Jasny via cmake-developers wrote:
> Does anyone see a reason to *not* prepend all  with a ?

I'm not particularly familiar with the ASM tooling landscape but
that prepend step is exactly what was done for all other languages
in commit v3.4.0-rc1~342^2 (Factor an  placeholder out
of  in rule variables, 2015-07-13):

  Factor an  placeholder out of  in rule variables
  https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=c736de7b

Since prior to that change the -I flags were included in 
I think leaving ASM changes out of the commit was an oversight.

Thanks,
-Brad

-- 

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-developers


Re: [cmake-developers] [PATCH] Ninja: Optionally skip library dependencies for object targets

2016-03-25 Thread Ben Boeckel
On Tue, Mar 15, 2016 at 10:06:12 -0400, Brad King wrote:
>   add_custom_command(OUTPUT foo.h ...)
>   add_library(foo foo.c foo.h)
>   add_library(bar bar.c)
>   target_link_libraries(bar foo)
> 
> The order-only dependency of `bar.c.o` on the target `foo` is just
> in case `bar.c` needs to include `foo.h`.  It is a conservative
> approach and does generate many unneeded dependencies in practice.

FWIW, I've looked into the logic which needs to be done here before and
as far as I can tell, it is (pseudocode):

deps = direct_deps_of(bar)
cc_deps = filter(is_custom_command, deps)

obj_deps = []
foreach dep in deps
r_deps = all_deps_of(dep)
r_cc_deps = filter(is_custom_command, r_deps)

if r_cc_deps is not subset of cc_deps
obj_deps.add(dep) # alternatively, just pass on the
  # missing custom command dependencies
  # (optionally with a warning).

# objects of bar should depend on the obj_deps targets for any
# potential implicit custom command dependencies.

> With a bit of analysis the Ninja generator could detect when `foo`
> has no custom commands and does not have a target-level dependency
> on other targets with custom commands.  Then dependencies on `foo`
> from compilations in `bar` could be omitted automatically.

This algorithm, I believe, can be applied to all generators, not just
Ninja.

--Ben
-- 

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-developers


Re: [cmake-developers] [CMake 0016030]: CMAKE_ASM_NASM_COMPILE_OBJECT lacks

2016-03-25 Thread Gregor Jasny via cmake-developers
Hello,

On 22/03/16 17:10, Mantis Bug Tracker wrote:
> Starting with CMake 3.4 the ASM_NASM language does not pass forward
> include_directories(XYZ) to the nasm compiler line.
> 
> As far as I can see  is missing for other assemblers as well.

When I grep for CMAKE_ASM * _COMPILE_OBJECT I get the (non-complete) list:

> Modules/CMakeASM-ATTInformation.cmake:set(CMAKE_ASM${ASM_DIALECT}_COMPILE_OBJECT
>  "  -o  ")
> Modules/CMakeASMInformation.cmake:  
> set(CMAKE_ASM${ASM_DIALECT}_COMPILE_OBJECT 
> "-o  
> -c ")
> Modules/CMakeASM_MASMInformation.cmake:set(CMAKE_ASM${ASM_DIALECT}_COMPILE_OBJECT
>  "/c  /Fo 
>  ")
> Modules/CMakeASM_NASMInformation.cmake:set(CMAKE_ASM_NASM_COMPILE_OBJECT 
> "  -f ${CMAKE_ASM_NASM_OBJECT_FORMAT} -o 
>  ")
> Modules/Compiler/ARMCC-ASM.cmake:set(CMAKE_ASM_COMPILE_OBJECT   
> "  -o  ")
> Modules/Compiler/IAR-ASM.cmake:set(CMAKE_ASM_COMPILE_OBJECT  
> " -o ")
> Modules/Compiler/TI-ASM.cmake:set(CMAKE_ASM_COMPILE_OBJECT  
> " --compile_only --asm_file=   
>  --output_file=")
> Modules/Platform/gas.cmake:set(CMAKE_ASM${ASM_DIALECT}_COMPILE_OBJECT 
> "  -o  ")

Does anyone see a reason to *not* prepend all  with a ?

Thanks,
Gregor
-- 

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-developers


Re: [cmake-developers] [Qt-creator] CMake daemon for user tools

2016-03-25 Thread Tobias Hunger
Am 24.03.2016 16:13 schrieb "Aleix Pol" :
> Hey,
> I'll be going to Berlin the weekend of the 14th May (Board meeting,
> I'll be busy during the weekend).
>
> Would it make sense for me to book one day before/after to meet and
> hack on this?

Hey Aleix,

I did already do some work on that front, trying to make the JSON API more
complete, less prone to sudden aborts (there used to be asserts that could
be triggered by user input), more consistent, and with better test
coverage. See my fork on github for details.

I am personally rather unsure about how to proceed. I can help make this
branch production/merge ready, but I do not want to maintain it
indefinitely after it is merged. It touches to many CMake internals for me
to be comfortable hacking on that code.

Currently you (Aleix), Domminik and me seem to be the only people that want
this daemon, so I guess it would make sense for us to sit together and
decide what we want, whether we can maintain it together (or where we can
get help) and then hack into that direction.

Best Regards,
Tobias
-- 

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-developers