I had asked in http://stackoverflow.com/questions/25841602 , someone told me
maybe here is a better place to ask.
I am writing a project base on crfpp , a external project. I use cmake to
integerate this project as follow .
firstly , I add a extenal project like this:
EXTERNALPROJECT_ADD(
CRFPP_EX_PROJ
GIT_REPOSITORY [email protected]:yujing5b5d/crfpp.git
PREFIX ${CMAKE_CURRENT_BINARY_DIR}
CONFIGURE_COMMAND ./configure
BUILD_COMMAND make -j8
BUILD_IN_SOURCE 1
INSTALL_COMMAND cp .libs/libcrfpp.a ${PROJECT_BINARY_DIR}/lib && cp
crfpp.h ${PROJECT_BINARY_DIR}/include
)
this will generate some .a file and copy a header file crfpp.h to folder
${PROJECT_BINARY_DIR}/include , which is included in my project.
and then , use the ${PROJECT_BINARY_DIR}/include as include path as follow .
INCLUDE_DIRECTORIES(
${PROJECT_SOURCE_DIR}/include
${PROJECT_BINARY_DIR}/include
)
finally , when I compile the main project , code like this :
ADD_EXECUTABLE(cmake_sample main.cc)
ADD_DEPENDENCIES(cmake_sample CRFPP_EX_PROJ)
TARGET_LINK_LIBRARIES(cmake_sample crfpp)
In general , if I just build a build folder, compile like this :
cmake ..
make
It may works fine, compile the external project first , and copy the header
file to desired place , and then continue compile main.cc in my project . But
if I use compile command as multi-thread like this :
cmake ..
make -j8
It will not works because my main.cc and the external project are processed at
same time, so it report a error like this :
/Users/yu/Workspace/res/cmake_sample/src/main.cc:3:10: fatal error: 'crfpp.h'
file not found
#include "crfpp.h" // crfpp
^
1 error generated.
This crfpp.h will generated after CRFPP_EX_PROJ , but in multi-thread
environment , the sequence is quite different .
My Question is : Is it possible that force let my project compile after these
external projects all finished . BE CAREFUL , I'm not sure is this the problem
of my use of ADD_DEPENDENCIES , I also wrote
ADD_DEPENDENCIES(cmake_sample CRFPP_EX_PROJ)
but it seems not works ?
Thanks for any help.
--
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