[CMake] Visual Studio links again even if no changes were made

Renan Greinert renan.greinert at totvs.com.br
Fri Dec 9 14:44:02 EST 2011


Hello,

I am using CMake to build a shared lib on Visual Studio 2008. The problem
here is that every time I try to debug the executable that uses that
library, the visual studio links its objects again, even if no changes were
made.

Do someone know what could be going on?

 

The CMakeLists for this lib is:

 

 

cmake_minimum_required(VERSION 2.8)

 

project(apwinnt)

 

set(APWINNT_SOURCES

  ${TOTVS_INTERFACETST_PATH}/apwinnt.cpp

  except.cpp

  ${TOTVS_INTERFACETST_PATH}/interfacetst.cpp

  ${TOTVS_INTERFACETST_PATH}/serverunittest.cpp

)

 

set(APWINNT_HEADERS

  except.hpp

  ${TOTVS_INTERFACETST_PATH}/serverunittest.h

)

 

 

set(APWINNT_LIBS

  wsock32.lib

  odbc32.lib

  odbccp32.lib

  Version.lib

  psapi.lib

  Dbghelp.lib

  tmq

  lib_jpeg

  advpl

  web

  lib

)

 

set(TOTVS_INCLUDES_PATHS

  ${TOTVS_LIB_COMM_PATH}

  ${TOTVS_LIB_BASE_PATH}

  ${TOTVS_OPENSSL_PATH}/inc32

  ${TOTVS_LIB_GZIP_PATH}

  ${TOTVS_WEB_PATH}

  ${TOTVS_INTERFACE_PATH}

  ${TOTVS_ADVPL_PATH}

  ${TOTVS_ADS_INCLUDE_PATH}

  ${TOTVS_LIB_GETSYS_PATH}

)

 

set(DEFINITIONS "/DAPWINNT_EXPORTS /DBUILD_MAKEDLL")

set(DEFINITIONS_RELEASE "/D_USRDLL /DCLICONN_EXPORTS")

set(DEFINITIONS_DEBUG "")

 

#os "ignore" são pra ignorar warnings específicos que são gerados pelo
libXML.

set(LINKER_FLAGS "/ignore:4217 /ignore:4049")

set(LINKER_FLAGS_DEBUG "/LIBPATH:${TOTVS_OPENSSL_PATH}/debug
/LIBPATH:${TOTVS_LIB_ICONV_PATH}/debug /LIBPATH:${TOTVS_XML_PATH}/debug
/LIBPATH:${TOTVS_XMLSEC_PATH}/debug Dbghelp.lib")

set(LINKER_FLAGS_RELEASE "/INCREMENTAL /INCLUDE:_SmartHeap_malloc
/LIBPATH:${TOTVS_OPENSSL_PATH}/release
/LIBPATH:${TOTVS_LIB_ICONV_PATH}/release /LIBPATH:${TOTVS_XML_PATH}/release
/LIBPATH:${TOTVS_XMLSEC_PATH}/release
${TOTVS_SMARTHEAP_PATH}/msvc/shdsmpmt.lib")

 

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${DEFINITIONS}")

set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ${DEFINITIONS_DEBUG}")

set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}
${DEFINITIONS_RELEASE}")

 

 

set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS}
${LINKER_FLAGS}")

set(CMAKE_SHARED_LINKER_FLAGS_DEBUG "${CMAKE_SHARED_LINKER_FLAGS_DEBUG}
${LINKER_FLAGS_DEBUG} ${LIBRARIES_DEBUG}")

set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE}
${LINKER_FLAGS_RELEASE}")

 

 

 

include_directories(

  ${TOTVS_INCLUDES_PATHS}

)

 

add_library(apwinnt SHARED ${APWINNT_SOURCES} ${APWINNT_HEADERS})

 

target_link_libraries(apwinnt ${APWINNT_LIBS})

 

 

The Visual Studio’s output is:

 

1>------ Build started: Project: apwinnt, Configuration: Debug Win32 ------

1>Linking...

1>LINK : C:\advtec9\trunk\bin_sem_unittest\apwinnt\Debug\apwinnt.dll not
found or not built by the last incremental link; performing full link

1>   Creating library
C:\advtec9\trunk\bin_sem_unittest\apwinnt\Debug\apwinnt.lib and object
C:\advtec9\trunk\bin_sem_unittest\apwinnt\Debug\apwinnt.exp

1>Embedding manifest...

1>Build log was saved at
"file://c:\advtec9\trunk\bin_sem_unittest\apwinnt\apwinnt.dir\Debug\BuildLog
.htm"

1>apwinnt - 0 error(s), 0 warning(s)

========== Build: 1 succeeded, 0 failed, 21 up-to-date, 0 skipped ==========

 

 

Thanks!

Renan Greinert

 

 

 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.cmake.org/pipermail/cmake/attachments/20111209/fe48b73b/attachment.htm>


More information about the CMake mailing list