Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
106 changes: 106 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
cmake_minimum_required(VERSION 3.23)

project(ranger
DESCRIPTION "A Fast Implementation of Random Forests"
HOMEPAGE_URL "https://github.com/imbs-hl/ranger"
LANGUAGES C CXX
VERSION 0.18.0)

include(GNUInstallDirs)
include(CMakePackageConfigHelpers)

set(CMAKE_THREAD_PREFER_PTHREAD TRUE)
set(THREADS_PREFER_PTHREAD_FLAG TRUE)
find_package(Threads REQUIRED)

add_library(ranger)
add_library(Ranger::ranger ALIAS ranger)

target_compile_features(ranger PUBLIC cxx_std_14)

target_sources(ranger
PRIVATE
src/Data.cpp
src/Forest.cpp
src/ForestClassification.cpp
src/ForestProbability.cpp
src/ForestRegression.cpp
src/ForestSurvival.cpp
src/Tree.cpp
src/TreeClassification.cpp
src/TreeProbability.cpp
src/TreeRegression.cpp
src/TreeSurvival.cpp
src/utility.cpp
src/utility/ArgumentHandler.cpp
PUBLIC
FILE_SET HEADERS
BASE_DIRS include
FILES
include/ranger/ArgumentHandler.h
include/ranger/Data.h
include/ranger/DataChar.h
include/ranger/DataDouble.h
include/ranger/DataFloat.h
include/ranger/Forest.h
include/ranger/ForestClassification.h
include/ranger/ForestProbability.h
include/ranger/ForestRegression.h
include/ranger/ForestSurvival.h
include/ranger/Tree.h
include/ranger/TreeClassification.h
include/ranger/TreeProbability.h
include/ranger/TreeRegression.h
include/ranger/TreeSurvival.h
include/ranger/getopt.h
include/ranger/globals.h
include/ranger/utility.h
include/ranger/version.h
)

target_include_directories(ranger
PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
PRIVATE
${CMAKE_CURRENT_SOURCE_DIR}/include/ranger
)

target_link_libraries(ranger PUBLIC Threads::Threads)

add_executable(ranger-cli src/cli/main.cpp)
set_target_properties(ranger-cli PROPERTIES OUTPUT_NAME ranger)
target_include_directories(ranger-cli PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include/ranger)
target_link_libraries(ranger-cli PRIVATE Ranger::ranger)

install(TARGETS ranger ranger-cli
EXPORT RangerTargets
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
FILE_SET HEADERS DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
)

install(EXPORT RangerTargets
FILE RangerTargets.cmake
NAMESPACE Ranger::
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/Ranger
)

write_basic_package_version_file(
"${CMAKE_CURRENT_BINARY_DIR}/RangerConfigVersion.cmake"
VERSION ${PROJECT_VERSION}
COMPATIBILITY SameMajorVersion
)

configure_package_config_file(
"${CMAKE_CURRENT_SOURCE_DIR}/cmake/RangerConfig.cmake.in"
"${CMAKE_CURRENT_BINARY_DIR}/RangerConfig.cmake"
INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/Ranger
)

install(FILES
"${CMAKE_CURRENT_BINARY_DIR}/RangerConfig.cmake"
"${CMAKE_CURRENT_BINARY_DIR}/RangerConfigVersion.cmake"
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/Ranger
)
3 changes: 3 additions & 0 deletions cmake/RangerConfig.cmake.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
@PACKAGE_INIT@

include("${CMAKE_CURRENT_LIST_DIR}/RangerTargets.cmake")
66 changes: 0 additions & 66 deletions cpp_version/.cproject

This file was deleted.

3 changes: 0 additions & 3 deletions cpp_version/.gitignore

This file was deleted.

27 changes: 0 additions & 27 deletions cpp_version/.project

This file was deleted.

82 changes: 0 additions & 82 deletions cpp_version/CMakeLists.txt

This file was deleted.

9 changes: 0 additions & 9 deletions cpp_version/COPYING

This file was deleted.

17 changes: 0 additions & 17 deletions cpp_version/cross_compile/build_all

This file was deleted.

20 changes: 0 additions & 20 deletions cpp_version/cross_compile/toolchain_win32.cmake

This file was deleted.

20 changes: 0 additions & 20 deletions cpp_version/cross_compile/toolchain_win64.cmake

This file was deleted.

Empty file removed cpp_version/src/.gitignore
Empty file.
Empty file removed cpp_version/src/Forest/.gitignore
Empty file.
1 change: 0 additions & 1 deletion cpp_version/src/Forest/Forest.cpp

This file was deleted.

1 change: 0 additions & 1 deletion cpp_version/src/Forest/Forest.h

This file was deleted.

1 change: 0 additions & 1 deletion cpp_version/src/Forest/ForestClassification.cpp

This file was deleted.

1 change: 0 additions & 1 deletion cpp_version/src/Forest/ForestClassification.h

This file was deleted.

1 change: 0 additions & 1 deletion cpp_version/src/Forest/ForestProbability.cpp

This file was deleted.

1 change: 0 additions & 1 deletion cpp_version/src/Forest/ForestProbability.h

This file was deleted.

1 change: 0 additions & 1 deletion cpp_version/src/Forest/ForestRegression.cpp

This file was deleted.

1 change: 0 additions & 1 deletion cpp_version/src/Forest/ForestRegression.h

This file was deleted.

1 change: 0 additions & 1 deletion cpp_version/src/Forest/ForestSurvival.cpp

This file was deleted.

1 change: 0 additions & 1 deletion cpp_version/src/Forest/ForestSurvival.h

This file was deleted.

Empty file removed cpp_version/src/Tree/.gitignore
Empty file.
1 change: 0 additions & 1 deletion cpp_version/src/Tree/Tree.cpp

This file was deleted.

Loading