option(ENABLE_LIBSVN "Set to ON to build SimGear with libsvnclient support" ON)
option(ENABLE_RTI "Set to ON to build SimGear with RTI support" OFF)
-set(MSVC_3RDPARTY_ROOT NOT_FOUND CACHE PATH "Location where the third-party dependencies are extracted")
+if (MSVC)
+ GET_FILENAME_COMPONENT(PARENT_DIR ${PROJECT_SOURCE_DIR} PATH)
+ if (CMAKE_CL_64)
+ SET(TEST_3RDPARTY_DIR "${PARENT_DIR}/3rdparty.x64")
+ else (CMAKE_CL_64)
+ SET(TEST_3RDPARTY_DIR "${PARENT_DIR}/3rdparty")
+ endif (CMAKE_CL_64)
+ if (EXISTS ${TEST_3RDPARTY_DIR})
+ set(MSVC_3RDPARTY_ROOT ${PARENT_DIR} CACHE PATH "Location where the third-party dependencies are extracted")
+ else (EXISTS ${TEST_3RDPARTY_DIR})
+ set(MSVC_3RDPARTY_ROOT NOT_FOUND CACHE PATH "Location where the third-party dependencies are extracted")
+ endif (EXISTS ${TEST_3RDPARTY_DIR})
+else (MSVC)
+ set(MSVC_3RDPARTY_ROOT NOT_FOUND CACHE PATH "Location where the third-party dependencies are extracted")
+endif (MSVC)
if (MSVC AND MSVC_3RDPARTY_ROOT)
message(STATUS "3rdparty files located in ${MSVC_3RDPARTY_ROOT}")
set (CMAKE_LIBRARY_PATH ${MSVC_3RDPARTY_ROOT}/${MSVC_3RDPARTY_DIR}/lib ${MSVC_3RDPARTY_ROOT}/install/${OSG_MSVC}/OpenScenegraph/lib )
set (CMAKE_INCLUDE_PATH ${MSVC_3RDPARTY_ROOT}/${MSVC_3RDPARTY_DIR}/include ${MSVC_3RDPARTY_ROOT}/install/${OSG_MSVC}/OpenScenegraph/include)
set (BOOST_ROOT ${MSVC_3RDPARTY_ROOT}/boost_1_44_0)
+ message(STATUS "BOOST_ROOT is ${BOOST_ROOT}")
set (OPENAL_INCLUDE_DIR ${MSVC_3RDPARTY_ROOT}/${MSVC_3RDPARTY_DIR}/include)
set (ALUT_INCLUDE_DIR ${MSVC_3RDPARTY_ROOT}/${MSVC_3RDPARTY_DIR}/include)
set (OPENAL_LIBRARY_DIR ${MSVC_3RDPARTY_ROOT}/${MSVC_3RDPARTY_DIR}/lib)
include (CheckFunctionExists)
include (CheckIncludeFile)
+include (CheckLibraryExists)
+
+macro(find_static_component comp libs)
+ # account for alternative Windows svn distribution naming
+ if(MSVC)
+ set(compLib "lib${comp}")
+ else(MSVC)
+ set(compLib "${comp}")
+ endif(MSVC)
+
+ string(TOUPPER "${comp}" compLibBase)
+ set( compLibName ${compLibBase}_LIBRARY )
+
+ FIND_LIBRARY(${compLibName}
+ NAMES ${compLib}
+ HINTS $ENV{PLIBDIR}
+ PATH_SUFFIXES lib64 lib libs64 libs libs/Win32 libs/Win64
+ PATHS
+ /usr/local
+ /usr
+ /opt
+ )
+
+ list(APPEND ${libs} ${${compLibName}})
+endmacro()
find_program(HAVE_APR_CONFIG apr-1-config)
if(HAVE_APR_CONFIG)
message(STATUS "apr-1-config not found, implement manual search for APR")
endif(HAVE_APR_CONFIG)
-if(HAVE_APR_CONFIG)
+if(HAVE_APR_CONFIG OR MSVC)
find_path(LIBSVN_INCLUDE_DIR svn_client.h
HINTS
$ENV{LIBSVN_DIR}
/usr
/opt
)
-
- check_library_exists(svn_client-1 svn_client_checkout "" HAVE_LIB_SVNCLIENT)
- check_library_exists(svn_subr-1 svn_cmdline_init "" HAVE_LIB_SVNSUBR)
- check_library_exists(svn_ra-1 svn_ra_initialize "" HAVE_LIB_SVNRA)
+
+ set(LIBSVN_LIBRARIES "")
+ if (MSVC)
+ find_static_component("apr-1" LIBSVN_LIBRARIES)
+ else (MSVC)
+ list(APPEND LIBSVN_LIBRARIES ${APR_LIBS})
+ endif (MSVC)
+ find_static_component("svn_client-1" LIBSVN_LIBRARIES)
+ find_static_component("svn_subr-1" LIBSVN_LIBRARIES)
+ find_static_component("svn_ra-1" LIBSVN_LIBRARIES)
include(FindPackageHandleStandardArgs)
- FIND_PACKAGE_HANDLE_STANDARD_ARGS(LIBSVN DEFAULT_MSG
- HAVE_LIB_SVNSUBR
- HAVE_LIB_SVNCLIENT
- HAVE_LIB_SVNRA
- LIBSVN_INCLUDE_DIR)
-
- if(LIBSVN_FOUND)
- set(LIBSVN_LIBRARIES "svn_client-1" "svn_subr-1" "svn_ra-1" ${APR_LIBS})
- endif(LIBSVN_FOUND)
-endif(HAVE_APR_CONFIG)
-
+ FIND_PACKAGE_HANDLE_STANDARD_ARGS(LIBSVN DEFAULT_MSG LIBSVN_LIBRARIES LIBSVN_INCLUDE_DIR)
+endif(HAVE_APR_CONFIG OR MSVC)