[CMake] Makefile to CMakeLists.txt (GTEST)

Kevyn-Alexandre Paré kapare at rogue-research.com
Tue Dec 7 12:17:41 EST 2010


Thx for replying,

But it didn't change by switching it.

Regards,

Kevyn-Alexandre Paré

On Wed, 2010-12-01 at 22:14 +0000, Fraser Hutchison wrote:
> Hi Kevyn-Alexandre,
> 
> I think moving the "-lpthread" to after "${GTEST_LIB_PATH}gtest.a 
> ${GTEST_LIB_PATH}gtest_main.a" should help.
> 
> Cheers,
> 
> Fraser.
> 
> 
> 
> On 01/12/2010 3:59 PM, Kevyn-Alexandre Paré wrote:
> > Philip,
> >
> > Thx for the reply. Neither of these solutions change a thing.
> >
> > I try to play with ADD_CUSTOM_TARGET but same error...
> >
> > ADD_CUSTOM_TARGET(RRThread.o ALL COMMAND ${CMAKE_C_COMPILER} -I
> > ${MICRONTRACKER_COMMON_PATH} -I${GTEST_HEADER_PATH} -lpthread -c
> > ${MICRONTRACKER_COMMON_PATH}RRThread.c
> > ${UNIT_TEST_PATH}common/UT_RRThread.cc)
> >
> > ADD_CUSTOM_TARGET(UT_RRThread ALL COMMAND ${CMAKE_CXX_COMPILER} -I
> > ${MICRONTRACKER_COMMON_PATH} -I${GTEST_HEADER_PATH} -lpthread RRThread.o
> > UT_RRThread.o ${GTEST_LIB_PATH}gtest.a ${GTEST_LIB_PATH}gtest_main.a -o
> > UT_RRThread)
> >
> > Result:
> > UT_RRThread.o: In function `thread_proc(void*)':
> > UT_RRThread.cc:(.text+0x28): undefined reference to `exitThread()'
> > ...
> >
> > I pretty sure that I'm missing little detail. How can I implicitly add
> > dependency to the object during the linking?
> >
> > Regards
> >
> > --
> > Kevyn-Alexandre Paré
> >
> >
> > On Mon, 2010-11-29 at 18:17 -0500, Philip Lowman wrote:
> >> Try adding the "gtest.a" library as well.  Also, order does matter
> >> when you are linking static libraries so you might need to play with
> >> the ordering.
> >>
> >>
> >> Also, when you get some time, have a look at FindGTest.cmake.  It may
> >> help you simplify adding your tests.
> >>
> >> On Mon, Nov 29, 2010 at 5:55 PM, Kevyn-Alexandre Paré
> >> <kapare at rogue-research.com>  wrote:
> >>          Hi,
> >>
> >>          /// ->  What I trying to do is to compile my unit test with
> >>          google test
> >>          with cmake from a working Makefile.
> >>
> >>          /// ->  Here the Makefile::::
> >>
> >>          RRThread.o : $(USER_DIR)/RRThread.c $(USER_DIR)/RRThread.h
> >>          $(GTEST_HEADERS)
> >>             $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c $(USER_DIR)/RRThread.c
> >>
> >>          UT_RRThread.o : $(UNITTEST_DIR)/UT_RRThread.cc \
> >>                              $(USER_DIR)/RRThread.h $(GTEST_HEADERS)#
> >>             $(CXX) $(CPPFLAGS) $(CXXFLAGS) -I$(USER_DIR) -c
> >>          $(UNITTEST_DIR)/UT_RRThread.cc
> >>
> >>          UT_RRThread : RRThread.o UT_RRThread.o gtest_main.a
> >>             $(CXX) $(CPPFLAGS) $(CXXFLAGS) -lpthread $^ -o $@
> >>
> >>
> >>          /// ->  Here how I thought of doing it with CMakeLists.txt:::
> >>
> >>          INCLUDE_DIRECTORIES(${GTEST_HEADER} ${USER_DIR})
> >>
> >>          ADD_EXECUTABLE(UT ${USER_DIR}RRThread.c
> >>          ${UNIT_TEST_PATH}UT_RRThread.cc)
> >>
> >>          TARGET_LINK_LIBRARIES(UT pthread
> >>          ${GTEST_LIB_PATH}gtest_main.a)
> >>
> >>          /// ->  My result:
> >>
> >>          Linking CXX executable UT
> >>          /usr/bin/cmake -E cmake_link_script CMakeFiles/UT.dir/link.txt
> >>          --verbose=1
> >>          /usr/bin/c++      CMakeFiles/UT.dir/common/RRThread.c.o
> >>          CMakeFiles/UT.dir/UnitTests/common/UT_RRThread.cc.o  -o UT
> >>          -rdynamic
> >>          -lpthread /home/andromeda/rogue-research/3rdParty/gtest/trunk/Release/lib/gtest_main.a
> >>          CMakeFiles/UT.dir/UnitTests/common/UT_RRThread.cc.o: In
> >>          function
> >>          `thread_proc(void*)':
> >>          UT_RRThread.cc:(.text+0x28): undefined reference to
> >>          `exitThread()'
> >>
> >>
> >>          /// ->  My question and my problem is:
> >>          Since I'm including the USER_DIR with INCLUDE_DIRECTORIES why
> >>          is it
> >>          complaining about not finding reference that is in that header
> >>          file?
> >>
> >>
> >>          Best Regards,
> >>
> >>          --
> >>          Kevyn-Alexandre Paré
> >>
> >>          _______________________________________________
> >>          Powered by www.kitware.com
> >>
> >>          Visit other Kitware open-source projects at
> >>          http://www.kitware.com/opensource/opensource.html
> >>
> >>          Please keep messages on-topic and check the CMake FAQ at:
> >>          http://www.cmake.org/Wiki/CMake_FAQ
> >>
> >>          Follow this link to subscribe/unsubscribe:
> >>          http://www.cmake.org/mailman/listinfo/cmake
> >>
> >>
> >>
> >> -- 
> >> Philip Lowman
> >>
> >
> > _______________________________________________
> > Powered by www.kitware.com
> >
> > Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html
> >
> > Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ
> >
> > Follow this link to subscribe/unsubscribe:
> > http://www.cmake.org/mailman/listinfo/cmake




More information about the CMake mailing list