[CMake] Linking against libraries under windows

Christian Lohr aequinoktikum at googlemail.com
Mon Aug 30 08:58:35 EDT 2010


Hello,

I need to include libraries for linking against OpenCascade in my
CMakeLists.txt. Everything went fine for Debian Linux, but I don’t get
it working under windows. And I've got another question about this
linking. I didn't get it working that "FIND_LIBRARY(OPENCASCADE_LIB
TKernel TKMath TKSTEP ... )" and a following
"TARGET_LINK_LIBRARIES(triangulation ${OPENCASCADE_LIB}) would link
against all those libraries. It seemed that it only linked against
TKernel, and omitted the rest. Under windows a environment variable is
set, called CASROOT, usually pointing to C:\OpenCASCADE6.3.0\, is
there a way getting cmake to use this path variable. The Libs under
windows are under ${CASROOT}/win32/lib, and the includes are under
${CASROOT}/inc.

Yours sincerely,

Christian Lohr



---------------------------------------------------------------------------------Here
my CMakeLists.txt----------------------------------------------------------------------------
project(TriangulationSTEP)

cmake_minimum_required(VERSION 2.6.0)
find_package(Qt4 REQUIRED)
include( ${QT_USE_FILE} )

include_directories(/usr/include/opencascade)
#add_library(opencascade IMPORTED -lTKernel -lTKMath -lTKSTEP -lTKSTL
-lTKXSBase -lTKTopAlgo -lTKBRep)

FIND_PATH ( CASROOT LICENSE PATHS C:/OpenCASCADE6.3.0/ )
FIND_PATH ( OPENCASCADE_INCLUDE_DIR Standard.hxx PATHS
/usr/include/opencascade ${CASROOT}/inc )
message(${OPENCASCADE_INCLUDE_DIR})

FIND_LIBRARY( OPENCASCADE_LIB TKernel TKMath TKSTEP TKSTL TKXBase
TKTopAlgo TKBRep)
message( ${OPENCASCADE_LIB} )

FIND_LIBRARY( OPENCASCADE_LIB1 NAMES TKernel PATHS ${CASROOT}/win32/lib)
FIND_LIBRARY( OPENCASCADE_LIB2 NAMES TKMath PATHS ${CASROOT}/win32/lib)
FIND_LIBRARY( OPENCASCADE_LIB3 NAMES TKSTEP PATHS ${CASROOT}/win32/lib)
FIND_LIBRARY( OPENCASCADE_LIB4 NAMES TKSTL PATHS ${CASROOT}/win32/lib)
FIND_LIBRARY( OPENCASCADE_LIB6 NAMES TKTopAlgo PATHS ${CASROOT}/win32/lib)
FIND_LIBRARY( OPENCASCADE_LIB7 NAMES TKBRep PATHS ${CASROOT}/win32/lib)

set(SOURCE_CPP
  main.cpp
)

include_directories(${CMAKE_CURRENT_BINARY_DIR})

add_executable(triangulation ${SOURCE_CPP})
target_link_libraries(triangulation ${QT_LIBRARIES})
target_link_libraries(triangulation ${OPENCASCADE_LIB1}
${OPENCASCADE_LIB2} ${OPENCASCADE_LIB3} ${OPENCASCADE_LIB4}
${OPENCASCADE_LIB6} ${OPENCASCADE_LIB7})


More information about the CMake mailing list