Skip to content

Commit

Permalink
[WIP] refactor cmake project
Browse files Browse the repository at this point in the history
add support for building modular interfaces depending on an external
prebuilt libshogun
  • Loading branch information
vigsterkr committed Feb 8, 2017
1 parent bcf9ffd commit 66ee2f0
Show file tree
Hide file tree
Showing 29 changed files with 481 additions and 672 deletions.
417 changes: 33 additions & 384 deletions CMakeLists.txt

Large diffs are not rendered by default.

17 changes: 10 additions & 7 deletions cmake/CommonModularInterface.cmake
@@ -1,8 +1,11 @@
MACRO(GENERATE_MODULAR_TARGET MODULAR_NAME MODULAR_DIR MODULAR_LIBARIES)
if(SYSTEM_INCLUDES)
INCLUDE_DIRECTORIES(SYSTEM ${SYSTEM_INCLUDES})
endif()
INCLUDE_DIRECTORIES(${INCLUDES})

get_target_property(ShogunIncludes shogun::shogun INTERFACE_INCLUDE_DIRECTORIES)
INCLUDE_DIRECTORIES(${ShogunIncludes})
#if(SYSTEM_INCLUDES)
# INCLUDE_DIRECTORIES(SYSTEM ${SYSTEM_INCLUDES})
#endif()
#INCLUDE_DIRECTORIES(${INCLUDES})

# transform defines to -D<definition> string

Expand Down Expand Up @@ -33,7 +36,7 @@ FOREACH(file ${MODULAR_FILES})
ENDFOREACH()

ADD_CUSTOM_TARGET(${MODULAR_NAME}_modular_src
DEPENDS shogun ${modular_files}
DEPENDS shogun::shogun ${modular_files}
COMMENT "copying SWIG files")

INCLUDE(${SWIG_USE_FILE})
Expand All @@ -43,7 +46,7 @@ IF(DEFINED TARGET_SWIGFLAGS)
ENDIF()
SET(SWIG_MODULE_${MODULAR_NAME}_modular_EXTRA_DEPS ${modular_files})
SWIG_ADD_MODULE(${MODULAR_NAME}_modular ${MODULAR_NAME} modshogun.i sg_print_functions.cpp)
SWIG_LINK_LIBRARIES(${MODULAR_NAME}_modular shogun ${MODULAR_LIBARIES})
SWIG_LINK_LIBRARIES(${MODULAR_NAME}_modular shogun::shogun ${MODULAR_LIBARIES})
SET_TARGET_PROPERTIES(${SWIG_MODULE_${MODULAR_NAME}_modular_REAL_NAME} PROPERTIES OUTPUT_NAME ${PREPEND_TARGET}modshogun)
ADD_DEPENDENCIES(${SWIG_MODULE_${MODULAR_NAME}_modular_REAL_NAME} ${MODULAR_NAME}_modular_src)

Expand All @@ -59,7 +62,7 @@ IF(DOXYGEN_FOUND)
OUTPUT modshogun
COMMAND ${DOXYGEN_EXECUTABLE}
ARGS modshogun.doxy
DEPENDS shogun
DEPENDS shogun::shogun
COMMENT "Generating doxygen doc"
)

Expand Down
12 changes: 6 additions & 6 deletions cmake/FindARPACK.cmake
@@ -1,17 +1,17 @@
SET(ARPACK_SEARCH_PATHS ${ARPACK_DIR})

FIND_LIBRARY(ARPACK_LIB NAMES arpack parpack PATHS ${ARPACK_SEARCH_PATHS})
FIND_LIBRARY(ARPACK_LIBRARIES NAMES arpack parpack PATHS ${ARPACK_SEARCH_PATHS})

SET(ARPACK_FOUND FALSE)
IF (ARPACK_LIB)
IF (ARPACK_LIBRARIES)
SET(ARPACK_FOUND TRUE)
MARK_AS_ADVANCED(ARPACK_LIB)
ENDIF (ARPACK_LIB)
MARK_AS_ADVANCED(ARPACK_LIBRARIES)
ENDIF (ARPACK_LIBRARIES)

IF (ARPACK_FOUND)
IF (NOT ARPACK_LIB_FIND_QUIETLY)
MESSAGE(STATUS "Found Arpack : ${ARPACK_LIB}")
GET_FILENAME_COMPONENT(ARPACK_PATH ${ARPACK_LIB} PATH CACHE)
MESSAGE(STATUS "Found Arpack : ${ARPACK_LIBRARIES}")
GET_FILENAME_COMPONENT(ARPACK_PATH ${ARPACK_LIBRARIES} PATH CACHE)
SET(ARPACK_INCLUDE_DIR ${ARPACK_PATH}/../include CACHE FILEPATH "ARPACK include directory.")
ENDIF (NOT ARPACK_LIB_FIND_QUIETLY)
ELSE(ARPACK_FOUND)
Expand Down
3 changes: 1 addition & 2 deletions cmake/FindCPLEX.cmake
Expand Up @@ -23,13 +23,12 @@ FIND_PATH(CPLEX_BIN_DIR

IF(CPLEX_FOUND)
SET(CPLEX_INCLUDE_DIRS ${CPLEX_INCLUDE_DIR})
SET(CPLEX_LIBRARIES ${CPLEX_LIBRARY})
IF(CMAKE_SYSTEM_NAME STREQUAL "Linux")
SET(CPLEX_LIBRARIES "${CPLEX_LIBRARIES};m;pthread")
ENDIF(CMAKE_SYSTEM_NAME STREQUAL "Linux")
ENDIF(CPLEX_FOUND)

MARK_AS_ADVANCED(CPLEX_LIBRARY CPLEX_INCLUDE_DIR CPLEX_BIN_DIR)
MARK_AS_ADVANCED(CPLEX_LIBRARIES CPLEX_INCLUDE_DIR CPLEX_BIN_DIR)

IF(CPLEX_FOUND)
SET(LEMON_HAVE_LP TRUE)
Expand Down
5 changes: 2 additions & 3 deletions cmake/FindGLPK.cmake
Expand Up @@ -47,12 +47,11 @@ INCLUDE(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(GLPK DEFAULT_MSG GLPK_LIBRARY GLPK_INCLUDE_DIR GLPK_PROPER_VERSION_FOUND)

IF(GLPK_FOUND)
SET(GLPK_INCLUDE_DIRS ${GLPK_INCLUDE_DIR})
SET(GLPK_LIBRARIES ${GLPK_LIBRARY})
SET(GLPK_BIN_DIR ${GLPK_ROOT_PATH}/bin)
SET(GLPK_LIBRARIES ${GLPK_LIBRARY})
ENDIF(GLPK_FOUND)

MARK_AS_ADVANCED(GLPK_LIBRARY GLPK_INCLUDE_DIR GLPK_BIN_DIR)
MARK_AS_ADVANCED(GLPK_LIBRARIES GLPK_INCLUDE_DIR GLPK_BIN_DIR)

IF(GLPK_FOUND)
SET(LEMON_HAVE_LP TRUE)
Expand Down
35 changes: 35 additions & 0 deletions cmake/FindJSON.cmake
@@ -0,0 +1,35 @@
macro(_json_get_version)
file(READ "${JSON_INCLUDE_DIR}/json_c_version.h" _json_version_header)

string(REGEX MATCH "define[ \t]+JSON_C_MAJOR_VERSION[ \t]+([0-9]+)" _json_major_version_match "${_json_version_header}")
set(JSON_C_MAJOR_VERSION "${CMAKE_MATCH_1}")
string(REGEX MATCH "define[ \t]+JSON_C_MINOR_VERSION[ \t]+([0-9]+)" _json_minor_version_match "${_json_version_header}")
set(JSON_C_MINOR_VERSION "${CMAKE_MATCH_1}")
string(REGEX MATCH "define[ \t]+JSON_C_MICRO_VERSION[ \t]+([0-9]+)" _json_micro_version_match "${_json_version_header}")
set(JSON_C_MICRO_VERSION "${CMAKE_MATCH_1}")

set(JSON_VERSION_STRING "${JSON_C_MAJOR_VERSION}.${JSON_C_MINOR_VERSION}.${JSON_C_MICRO_VERSION}")

endmacro(_json_get_version)

find_path(JSON_INCLUDE_DIR NAMES json_c_version.h json.h
PATHS
${CMAKE_INSTALL_PREFIX}/include
PATH_SUFFIXES json json-c
)
find_library(JSON_LIBRARY NAMES json-c json)

if(JSON_INCLUDE_DIR)
_json_get_version()
endif()

include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(JSON
REQUIRED_VARS JSON_INCLUDE_DIR JSON_LIBRARY
VERSION_VAR JSON_VERSION_STRING)

if(JSON_FOUND)
set(JSON_LIBRARIES ${JSON_LIBRARY})
endif()

mark_as_advanced(JSON_INCLUDE_DIR JSON_LIBRARIES)
204 changes: 0 additions & 204 deletions cmake/FindJava.cmake

This file was deleted.

8 changes: 4 additions & 4 deletions cmake/FindLZO.cmake
Expand Up @@ -6,9 +6,9 @@

find_path(LZO_INCLUDE_DIR NAMES lzo/lzoconf.h)

find_library(LZO_LIBS NAMES lzo2)
find_library(LZO_LIBRARIES NAMES lzo2)

if (LZO_LIBS)
if (LZO_LIBRARIES)
if (LZO_INCLUDE_DIR)
set(LZO_FOUND TRUE)
else ()
Expand All @@ -20,7 +20,7 @@ endif ()

if (LZO_FOUND)
if (NOT LZO_FIND_QUIETLY)
message(STATUS "Lzo Library ${LZO_LIBS}")
message(STATUS "Lzo Library ${LZO_LIBRARIES}")
message(STATUS "Lzo Include Found in ${LZO_INCLUDE_DIR}")
endif ()
else ()
Expand All @@ -29,5 +29,5 @@ endif ()

mark_as_advanced(
LZO_INCLUDE_DIR
LZO_LIBS
LZO_LIBRARIES
)
1 change: 1 addition & 0 deletions cmake/FindMosek.cmake
Expand Up @@ -485,6 +485,7 @@ set (MOSEK_REQUIRED_VARS
MOSEK_DIR
MOSEK_INCLUDE_DIR
MOSEK_LIBRARY
MOSEK_LIBRARIES
)

if (MOSEK_FIND_mex)
Expand Down

0 comments on commit 66ee2f0

Please sign in to comment.