Sorry, I misunderstood. I had a look through the
check_cxx_source_compiles() implementation and it basically forwards
through to a try_compile() call. Looking at the docs for try_compile()
<file:///Applications/CMake.app/Contents/doc/cmake/html/command/try_compile.html#other-behavior-settings>,
it says only the following are passed through to the temporary CMake
project created for the test compilation:


   - CMAKE_ENABLE_EXPORTS
   - CMAKE_LINK_SEARCH_START_STATIC
   - CMAKE_LINK_SEARCH_END_STATIC
   - CMAKE_POSITION_INDEPENDENT_CODE

A few more can be passed through depending on policy settings, but it looks
like CMAKE_CXX_STANDARD, CMAKE_CXX_STANDARD_REQUIRED and
CMAKE_CXX_EXTENSIONS don't get passed through. So it looks like, at the
moment, you would have to manually pass through the relevant compiler and
linker flags to get sources built via try_compile() and therefore via
check_cxx_source_compiles(). I've recorded a new issue
<https://gitlab.kitware.com/cmake/cmake/issues/16456> in the issue tracker
for this.





On Fri, Nov 25, 2016 at 9:25 PM, Roman Wüger <roman.wue...@gmx.at> wrote:

> but it does not set/add the required library
>
> Am 24.11.2016 um 22:01 schrieb Craig Scott <craig.sc...@crascit.com>:
>
> You might also need to set CMAKE_CXX_EXTENSIONS
> <https://cmake.org/cmake/help/latest/variable/CMAKE_CXX_EXTENSIONS.html>
> to OFF (it's ON by default). This controls which c++ library is linked for
> some compilers, with clang and gcc being two cases where it does this. You
> may also find this article
> <https://crascit.com/2015/03/28/enabling-cxx11-in-cmake/> about the
> related CMake variables and commands to be of interest.
>
> On Fri, Nov 25, 2016 at 5:43 AM, Roman Wüger <roman.wue...@gmx.at> wrote:
>
>> It is working now, after I added -lc++ to CMAKE_REQUIRED_LIBRARIES before
>> the check_cxx_source_compiles() call.
>>
>> Shouldn't this be done by CMAKE_CXX_STANDARD?
>>
>> Best Regards
>> Roman
>>
>> Am 24.11.2016 um 19:08 schrieb Roman Wüger <roman.wue...@gmx.at>:
>>
>> Hello,
>>
>>
>>
>> If I use a small piece of code which uses <regex>, then it fails with
>> check_cxx_source_compiles. If I copy the piece of code into a file and run
>> the following on the command line, then it works:
>>
>>
>>
>> clang++ main.cpp -std=c++14 -stdlib=libc++
>>
>>
>>
>> Here is the piece of code:
>>
>>
>>
>> #include <regex>
>>
>> #include <string>
>>
>>
>>
>> int main() {
>>
>>     const std::string text = "Roses are #ff0000, other flowers have other
>> colors.";
>>
>>     const std::regex pattern("#([a-f0-9]{2})");
>>
>>
>>
>>     std::smatch match;
>>
>>     std::regex_search(text, match, pattern);
>>
>>
>>
>>     return 0;
>>
>> }
>>
>>
>>
>> I use this code in CMake as a platform check as followed:
>>
>>
>>
>> # C++11 Regular Expression
>>
>> set(CMAKE_REQUIRED_FLAGS "${CMAKE_CXX_FLAGS}")
>>
>> check_cxx_source_compiles(
>>
>>   "#include <regex>
>>
>>    #include <string>
>>
>>
>>
>>    int main() {
>>
>>        const std::string text = \"Roses are #ff0000, other flowers have
>> other colors.\";
>>
>>        const std::regex pattern(\"#([a-f0-9]{2})\");
>>
>>
>>
>>        std::smatch match;
>>
>>        std::regex_search(text, match, pattern);
>>
>>
>>
>>        return 0;
>>
>>    }"
>>
>>   HAVE_CXX11_REGULAR_EXPRESSIONS
>>
>> )
>>
>> set(CMAKE_REQUIRED_FLAGS "")
>>
>>
>>
>> CMakeFiles/CMakeError.log shows:
>>
>>
>>
>> Undefined symbols for architecture x86_64:
>>
>>   "std::__1::basic_string<char, std::__1::char_traits<char>,
>> std::__1::allocator<char> >::compare(char const*) const", referenced from:
>>
>>       std::__1::basic_regex<char, std::__1::regex_traits<char>
>> >::__start_matching_list(bool) in src.o
>>
>>   "std::__1::__vector_base_common<true>::__throw_length_error() const",
>> referenced from:
>>
>>       std::__1::vector<std::__1::sub_match<char const*>,
>> std::__1::allocator<std::__1::sub_match<char const*> >
>> >::assign(unsigned long, std::__1::sub_match<char const*> const&) in src.o
>>
>>       std::__1::vector<std::__1::sub_match<char const*>,
>> std::__1::allocator<std::__1::sub_match<char const*> >
>> >::allocate(unsigned long) in src.o
>>
>>       void std::__1::vector<std::__1::__state<char>,
>> std::__1::allocator<std::__1::__state<char> >
>> >::__push_back_slow_path<std::__1::__state<char>
>> >(std::__1::__state<char>&&) in src.o
>>
>>       std::__1::vector<std::__1::sub_match<char const*>,
>> std::__1::allocator<std::__1::sub_match<char const*> >
>> >::__append(unsigned long, std::__1::sub_match<char const*> const&) in src.o
>>
>>       std::__1::vector<std::__1::pair<unsigned long, char const*>,
>> std::__1::allocator<std::__1::pair<unsigned long, char const*> >
>> >::__append(unsigned long) in src.o
>>
>>       std::__1::vector<std::__1::pair<unsigned long, char const*>,
>> std::__1::allocator<std::__1::pair<unsigned long, char const*> >
>> >::allocate(unsigned long) in src.o
>>
>>       void std::__1::vector<char, std::__1::allocator<char>
>> >::__push_back_slow_path<char>(char&&) in src.o
>>
>>       ...
>>
>>   "std::__1::__basic_string_common<true>::__throw_length_error() const",
>> referenced from:
>>
>>       std::__1::enable_if<__is_forward_iterator<char*>::value,
>> void>::type std::__1::basic_string<char, std::__1::char_traits<char>,
>> std::__1::allocator<char> >::__init<char*>(char*, char*) in src.o
>>
>>       std::__1::enable_if<__is_forward_iterator<char const*>::value,
>> void>::type std::__1::basic_string<char, std::__1::char_traits<char>,
>> std::__1::allocator<char> >::__init<char const*>(char const*, char const*)
>> in src.o
>>
>>       std::__1::enable_if<__is_forward_iterator<std::__1::__wrap_iter<char*>
>> >::value, void>::type std::__1::basic_string<char,
>> std::__1::char_traits<char>, std::__1::allocator<char>
>> >::__init<std::__1::__wrap_iter<char*> >(std::__1::__wrap_iter<char*>,
>> std::__1::__wrap_iter<char*>) in src.o
>>
>>   "std::__1::__match_any_but_newline<char>::__exec(std::__1::__state<char>&)
>> const", referenced from:
>>
>>       vtable for std::__1::__match_any_but_newline<char> in src.o
>>
>>   "std::__1::locale::name() const", referenced from:
>>
>>       std::__1::basic_regex<char, std::__1::regex_traits<char>
>> >::__start_matching_list(bool) in src.o
>>
>>   "std::__1::locale::use_facet(std::__1::locale::id&) const", referenced
>> from:
>>
>>       std::__1::regex_traits<char>::__init() in src.o
>>
>>   
>> "std::__1::regex_error::regex_error(std::__1::regex_constants::error_type)",
>> referenced from:
>>
>>       char const* std::__1::basic_regex<char,
>> std::__1::regex_traits<char> >::__parse<char const*>(char const*, char
>> const*) in src.o
>>
>>       char const* std::__1::basic_regex<char,
>> std::__1::regex_traits<char> >::__parse_basic_reg_exp<char const*>(char
>> const*, char const*) in src.o
>>
>>       char const* std::__1::basic_regex<char,
>> std::__1::regex_traits<char> >::__parse_extended_reg_exp<char
>> const*>(char const*, char const*) in src.o
>>
>>       char const* std::__1::basic_regex<char,
>> std::__1::regex_traits<char> >::__parse_assertion<char const*>(char const*,
>> char const*) in src.o
>>
>>       char const* std::__1::basic_regex<char,
>> std::__1::regex_traits<char> >::__parse_atom<char const*>(char const*, char
>> const*) in src.o
>>
>>       char const* std::__1::basic_regex<char,
>> std::__1::regex_traits<char> >::__parse_ERE_dupl_symbol<char
>> const*>(char const*, char const*, std::__1::__owns_one_state<char>*,
>> unsigned int, unsigned int) in src.o
>>
>>       bool std::__1::basic_regex<char, std::__1::regex_traits<char>
>> >::__match_at_start_ecma<std::__1::allocator<std::__1::sub_match<char
>> const*> > >(char const*, char const*, std::__1::match_results<char const*,
>> std::__1::allocator<std::__1::sub_match<char const*> > >&,
>> std::__1::regex_constants::match_flag_type, bool) const in src.o
>>
>>       ...
>>
>>   "std::__1::regex_error::~regex_error()", referenced from:
>>
>>       char const* std::__1::basic_regex<char,
>> std::__1::regex_traits<char> >::__parse<char const*>(char const*, char
>> const*) in src.o
>>
>>       char const* std::__1::basic_regex<char,
>> std::__1::regex_traits<char> >::__parse_basic_reg_exp<char const*>(char
>> const*, char const*) in src.o
>>
>>       char const* std::__1::basic_regex<char,
>> std::__1::regex_traits<char> >::__parse_extended_reg_exp<char
>> const*>(char const*, char const*) in src.o
>>
>>       char const* std::__1::basic_regex<char,
>> std::__1::regex_traits<char> >::__parse_assertion<char const*>(char const*,
>> char const*) in src.o
>>
>>       char const* std::__1::basic_regex<char,
>> std::__1::regex_traits<char> >::__parse_atom<char const*>(char const*, char
>> const*) in src.o
>>
>>       char const* std::__1::basic_regex<char,
>> std::__1::regex_traits<char> >::__parse_ERE_dupl_symbol<char
>> const*>(char const*, char const*, std::__1::__owns_one_state<char>*,
>> unsigned int, unsigned int) in src.o
>>
>>       bool std::__1::basic_regex<char, std::__1::regex_traits<char>
>> >::__match_at_start_ecma<std::__1::allocator<std::__1::sub_match<char
>> const*> > >(char const*, char const*, std::__1::match_results<char const*,
>> std::__1::allocator<std::__1::sub_match<char const*> > >&,
>> std::__1::regex_constants::match_flag_type, bool) const in src.o
>>
>>       ...
>>
>>   "std::__1::basic_string<char, std::__1::char_traits<char>,
>> std::__1::allocator<char> >::__init(char const*, unsigned long)",
>> referenced from:
>>
>>       _main in src.o
>>
>>   "std::__1::basic_string<char, std::__1::char_traits<char>,
>> std::__1::allocator<char> >::__init(unsigned long, char)", referenced from:
>>
>>       std::__1::__bracket_expression<char, std::__1::regex_traits<char>
>> >::__exec(std::__1::__state<char>&) const in src.o
>>
>>   "std::__1::basic_string<char, std::__1::char_traits<char>,
>> std::__1::allocator<char> >::reserve(unsigned long)", referenced from:
>>
>>       std::__1::basic_string<char, std::__1::char_traits<char>,
>> std::__1::allocator<char> > std::__1::regex_traits<char>::
>> __lookup_collatename<char*>(char*, char*, char) const in src.o
>>
>>       char const* std::__1::basic_regex<char,
>> std::__1::regex_traits<char> >::__parse_collating_symbol<char
>> const*>(char const*, char const*, std::__1::basic_string<char,
>> std::__1::char_traits<char>, std::__1::allocator<char> >&) in src.o
>>
>>       std::__1::basic_string<char, std::__1::char_traits<char>,
>> std::__1::allocator<char> > 
>> std::__1::regex_traits<char>::__lookup_collatename<char
>> const*>(char const*, char const*, char) const in src.o
>>
>>   "std::__1::basic_string<char, std::__1::char_traits<char>,
>> std::__1::allocator<char> >::basic_string(std::__1::basic_string<char,
>> std::__1::char_traits<char>, std::__1::allocator<char> > const&)",
>> referenced from:
>>
>>       char const* std::__1::basic_regex<char,
>> std::__1::regex_traits<char> >::__parse_equivalence_class<char
>> const*>(char const*, char const*, std::__1::__bracket_expression<char,
>> std::__1::regex_traits<char> >*) in src.o
>>
>>       void std::__1::vector<std::__1::basic_string<char,
>> std::__1::char_traits<char>, std::__1::allocator<char> >,
>> std::__1::allocator<std::__1::basic_string<char,
>> std::__1::char_traits<char>, std::__1::allocator<char> > >
>> >::__push_back_slow_path<std::__1::basic_string<char,
>> std::__1::char_traits<char>, std::__1::allocator<char> >
>> const&>(std::__1::basic_string<char, std::__1::char_traits<char>,
>> std::__1::allocator<char> > const&&&) in src.o
>>
>>   "std::__1::basic_string<char, std::__1::char_traits<char>,
>> std::__1::allocator<char> >::~basic_string()", referenced from:
>>
>>       _main in src.o
>>
>>       std::__1::basic_regex<char, std::__1::regex_traits<char>
>> >::__start_matching_list(bool) in src.o
>>
>>       std::__1::__bracket_expression<char, std::__1::regex_traits<char>
>> >::__exec(std::__1::__state<char>&) const in src.o
>>
>>       std::__1::__vector_base<std::__1::basic_string<char,
>> std::__1::char_traits<char>, std::__1::allocator<char> >,
>> std::__1::allocator<std::__1::basic_string<char,
>> std::__1::char_traits<char>, std::__1::allocator<char> > >
>> >::~__vector_base() in src.o
>>
>>       std::__1::pair<std::__1::basic_string<char,
>> std::__1::char_traits<char>, std::__1::allocator<char> >,
>> std::__1::basic_string<char, std::__1::char_traits<char>,
>> std::__1::allocator<char> > >::~pair() in src.o
>>
>>       std::__1::basic_string<char, std::__1::char_traits<char>,
>> std::__1::allocator<char> > 
>> std::__1::regex_traits<char>::transform<char*>(char*,
>> char*) const in src.o
>>
>>       std::__1::basic_string<char, std::__1::char_traits<char>,
>> std::__1::allocator<char> > std::__1::regex_traits<char>::
>> __lookup_collatename<char*>(char*, char*, char) const in src.o
>>
>>       ...
>>
>>   "std::__1::basic_string<char, std::__1::char_traits<char>,
>> std::__1::allocator<char> >::operator=(std::__1::basic_string<char,
>> std::__1::char_traits<char>, std::__1::allocator<char> > const&)",
>> referenced from:
>>
>>       std::__1::basic_string<char, std::__1::char_traits<char>,
>> std::__1::allocator<char> > std::__1::regex_traits<char>::
>> __lookup_collatename<char*>(char*, char*, char) const in src.o
>>
>>       std::__1::basic_string<char, std::__1::char_traits<char>,
>> std::__1::allocator<char> > 
>> std::__1::regex_traits<char>::__lookup_collatename<char
>> const*>(char const*, char const*, char) const in src.o
>>
>>   "std::__1::basic_string<char, std::__1::char_traits<char>,
>> std::__1::allocator<char> >::operator=(char)", referenced from:
>>
>>       char const* std::__1::basic_regex<char,
>> std::__1::regex_traits<char> >::__parse_character_escape<char
>> const*>(char const*, char const*, std::__1::basic_string<char,
>> std::__1::char_traits<char>, std::__1::allocator<char> >*) in src.o
>>
>>       char const* std::__1::basic_regex<char,
>> std::__1::regex_traits<char> >::__parse_expression_term<char
>> const*>(char const*, char const*, std::__1::__bracket_expression<char,
>> std::__1::regex_traits<char> >*) in src.o
>>
>>       char const* std::__1::basic_regex<char,
>> std::__1::regex_traits<char> >::__parse_class_escape<char const*>(char
>> const*, char const*, std::__1::basic_string<char,
>> std::__1::char_traits<char>, std::__1::allocator<char> >&,
>> std::__1::__bracket_expression<char, std::__1::regex_traits<char> >*) in
>> src.o
>>
>>       char const* std::__1::basic_regex<char,
>> std::__1::regex_traits<char> >::__parse_awk_escape<char const*>(char
>> const*, char const*, std::__1::basic_string<char,
>> std::__1::char_traits<char>, std::__1::allocator<char> >*) in src.o
>>
>>   "std::__1::__get_classname(char const*, bool)", referenced from:
>>
>>       unsigned int std::__1::regex_traits<char>::__lookup_classname<char
>> const*>(char const*, char const*, bool, char) const in src.o
>>
>>   "std::__1::__shared_weak_count::__add_shared()", referenced from:
>>
>>       std::__1::basic_regex<char, std::__1::regex_traits<char>
>> >::basic_regex(std::__1::basic_regex<char, std::__1::regex_traits<char>
>> > const&) in src.o
>>
>>   "std::__1::__shared_weak_count::__release_shared()", referenced from:
>>
>>       std::__1::shared_ptr<std::__1::__empty_state<char>
>> >::~shared_ptr() in src.o
>>
>>   "std::__1::__shared_weak_count::~__shared_weak_count()", referenced
>> from:
>>
>>       std::__1::__shared_ptr_pointer<std::__1::__empty_state<char>*,
>> std::__1::default_delete<std::__1::__empty_state<char> >,
>> std::__1::allocator<std::__1::__empty_state<char> >
>> >::~__shared_ptr_pointer() in src.o
>>
>>   "std::__1::__get_collation_name(char const*)", referenced from:
>>
>>       std::__1::basic_string<char, std::__1::char_traits<char>,
>> std::__1::allocator<char> > std::__1::regex_traits<char>::
>> __lookup_collatename<char*>(char*, char*, char) const in src.o
>>
>>       std::__1::basic_string<char, std::__1::char_traits<char>,
>> std::__1::allocator<char> > 
>> std::__1::regex_traits<char>::__lookup_collatename<char
>> const*>(char const*, char const*, char) const in src.o
>>
>>   "std::__1::ctype<char>::id", referenced from:
>>
>>       std::__1::regex_traits<char>::__init() in src.o
>>
>>   "std::__1::locale::locale(std::__1::locale const&)", referenced from:
>>
>>       std::__1::regex_traits<char>::regex_traits(std::__1::regex_traits<char>
>> const&) in src.o
>>
>>       std::__1::basic_regex<char, std::__1::regex_traits<char>
>> >::__start_matching_list(bool) in src.o
>>
>>   "std::__1::locale::locale()", referenced from:
>>
>>       std::__1::regex_traits<char>::regex_traits() in src.o
>>
>>  "std::__1::locale::~locale()", referenced from:
>>
>>       std::__1::regex_traits<char>::~regex_traits() in src.o
>>
>>       std::__1::regex_traits<char>::regex_traits() in src.o
>>
>>       std::__1::basic_regex<char, std::__1::regex_traits<char>
>> >::__start_matching_list(bool) in src.o
>>
>>   "std::__1::collate<char>::id", referenced from:
>>
>>       std::__1::regex_traits<char>::__init() in src.o
>>
>>   "typeinfo for std::__1::regex_error", referenced from:
>>
>>       char const* std::__1::basic_regex<char,
>> std::__1::regex_traits<char> >::__parse<char const*>(char const*, char
>> const*) in src.o
>>
>>       char const* std::__1::basic_regex<char,
>> std::__1::regex_traits<char> >::__parse_basic_reg_exp<char const*>(char
>> const*, char const*) in src.o
>>
>>       char const* std::__1::basic_regex<char,
>> std::__1::regex_traits<char> >::__parse_extended_reg_exp<char
>> const*>(char const*, char const*) in src.o
>>
>>       char const* std::__1::basic_regex<char,
>> std::__1::regex_traits<char> >::__parse_assertion<char const*>(char const*,
>> char const*) in src.o
>>
>>       char const* std::__1::basic_regex<char,
>> std::__1::regex_traits<char> >::__parse_atom<char const*>(char const*, char
>> const*) in src.o
>>
>>       char const* std::__1::basic_regex<char,
>> std::__1::regex_traits<char> >::__parse_ERE_dupl_symbol<char
>> const*>(char const*, char const*, std::__1::__owns_one_state<char>*,
>> unsigned int, unsigned int) in src.o
>>
>>       bool std::__1::basic_regex<char, std::__1::regex_traits<char>
>> >::__match_at_start_ecma<std::__1::allocator<std::__1::sub_match<char
>> const*> > >(char const*, char const*, std::__1::match_results<char const*,
>> std::__1::allocator<std::__1::sub_match<char const*> > >&,
>> std::__1::regex_constants::match_flag_type, bool) const in src.o
>>
>>       ...
>>
>>   "typeinfo for std::__1::__shared_weak_count", referenced from:
>>
>>       typeinfo for std::__1::__shared_ptr_pointer
>> <std::__1::__empty_state<char>*, 
>> std::__1::default_delete<std::__1::__empty_state<char>
>> >, std::__1::allocator<std::__1::__empty_state<char> > > in src.o
>>
>>   "vtable for std::__1::__shared_count", referenced from:
>>
>>       std::__1::shared_ptr<std::__1::__empty_state<char>
>> >::shared_ptr<std::__1::__empty_state<char>
>> >(std::__1::__empty_state<char>*, std::__1::enable_if<is_convert
>> ible<std::__1::__empty_state<char>*, std::__1::__empty_state<char>*>::value,
>> std::__1::shared_ptr<std::__1::__empty_state<char> >::__nat>::type) in
>> src.o
>>
>>   NOTE: a missing vtable usually means the first non-inline virtual
>> member function has no definition.
>>
>>   "vtable for std::__1::__shared_weak_count", referenced from:
>>
>>       std::__1::shared_ptr<std::__1::__empty_state<char>
>> >::shared_ptr<std::__1::__empty_state<char>
>> >(std::__1::__empty_state<char>*, std::__1::enable_if<is_convert
>> ible<std::__1::__empty_state<char>*, std::__1::__empty_state<char>*>::value,
>> std::__1::shared_ptr<std::__1::__empty_state<char> >::__nat>::type) in
>> src.o
>>
>>   NOTE: a missing vtable usually means the first non-inline virtual
>> member function has no definition.
>>
>> ld: symbol(s) not found for architecture x86_64
>>
>> clang: error: linker command failed with exit code 1 (use -v to see
>> invocation)
>>
>>
>>
>> ** BUILD FAILED **
>>
>>
>>
>> Did I forget something?
>>
>>
>>
>> Thanks in advance
>>
>>
>>
>> Best Regards
>>
>> Roman
>>
>> --
>>
>> 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
>>
>>
>> --
>>
>> 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
>>
>
>
>
> --
> Craig Scott
> Melbourne, Australia
> https://crascit.com
>
>


-- 
Craig Scott
Melbourne, Australia
https://crascit.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:
http://public.kitware.com/mailman/listinfo/cmake

Reply via email to