diff --git a/CMakeLists.txt b/CMakeLists.txt index d2871ac..f68afdb 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,10 +4,20 @@ cmake_policy(SET CMP0048 NEW) cmake_policy(SET CMP0042 NEW) project(thundersvm VERSION 0.1.0 LANGUAGES C CXX) -if(MSVC) - set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/bin) - set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/bin) -endif() +if (CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_SOURCE_DIR) + set(MAIN_PROJECT ON) +endif () + +if (MAIN_PROJECT) + if (MSVC) + set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/bin) + set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/bin) + endif () + + set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) + set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) + set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) +endif () option(BUILD_SHARED_LIBS "Build as a shared library" ON) option(USE_CUDA "Compile with CUDA" ON) @@ -51,7 +61,7 @@ else () message("using internal Eigen3 for acceleration") include_directories(${PROJECT_SOURCE_DIR}/eigen) endif () - if (NOT CMAKE_CXX_FLAGS MATCHES "-march") + if (NOT MSVC AND NOT CMAKE_CXX_FLAGS MATCHES "-march") add_compile_options("-march=native") endif () endif () @@ -62,7 +72,7 @@ else () set(CMAKE_CXX_STANDARD 11) endif () -set(COMMON_INCLUDES ${PROJECT_SOURCE_DIR}/include ${CMAKE_CURRENT_BINARY_DIR}) +set(COMMON_INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}/include ${CMAKE_CURRENT_BINARY_DIR}) set(DATASET_DIR ${PROJECT_SOURCE_DIR}/dataset/) diff --git a/src/thundersvm/CMakeLists.txt b/src/thundersvm/CMakeLists.txt index 6d14722..6173825 100644 --- a/src/thundersvm/CMakeLists.txt +++ b/src/thundersvm/CMakeLists.txt @@ -1,6 +1,3 @@ -set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) -set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) -set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) #set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DELPP_NO_DEFAULT_LOG_FILE") #file(GLOB_RECURSE SRC *) @@ -23,6 +20,12 @@ else () add_executable(${PROJECT_NAME}-predict thundersvm-predict.cpp ${COMMON_INCLUDES}) endif () + +target_include_directories(${PROJECT_NAME} + PUBLIC $ + PUBLIC $ + ) + target_link_libraries(${PROJECT_NAME}-train ${LINK_LIBRARY} ${PROJECT_LIB_NAME}) target_link_libraries(${PROJECT_NAME}-predict ${LINK_LIBRARY} ${PROJECT_LIB_NAME}) @@ -37,7 +40,7 @@ write_basic_package_version_file( COMPATIBILITY AnyNewerVersion) configure_package_config_file( - ${CMAKE_SOURCE_DIR}/cmake/${PROJECT_NAME}Config.cmake.in + ${CMAKE_CURRENT_SOURCE_DIR}/../../cmake/${PROJECT_NAME}Config.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/cmake/${PROJECT_NAME}Config.cmake INSTALL_DESTINATION lib/cmake/) @@ -51,8 +54,8 @@ install(TARGETS ${PROJECT_NAME} LIBRARY DESTINATION lib RUNTIME DESTINATION bin INCLUDES DESTINATION include) -install(DIRECTORY ${CMAKE_SOURCE_DIR}/include/thundersvm DESTINATION include/) -install(FILES ${CMAKE_BINARY_DIR}/thundersvm/config.h DESTINATION include/thundersvm/) +install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/../../include/thundersvm DESTINATION include/) +install(FILES ${CMAKE_CURRENT_BINARY_DIR}/../../thundersvm/config.h DESTINATION include/thundersvm/) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/cmake/${PROJECT_NAME}Config.cmake