mirror of https://gitlab.com/cppit/jucipp
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
75 lines
3.6 KiB
75 lines
3.6 KiB
|
6 years ago
|
#include "cmake.hpp"
|
||
|
|
#include "config.hpp"
|
||
|
9 years ago
|
#include "process.hpp"
|
||
|
6 years ago
|
#include "project_build.hpp"
|
||
|
8 years ago
|
#include <boost/filesystem.hpp>
|
||
|
|
#include <glib.h>
|
||
|
10 years ago
|
|
||
|
9 years ago
|
#include <iostream>
|
||
|
|
using namespace std;
|
||
|
|
|
||
|
10 years ago
|
int main() {
|
||
|
8 years ago
|
auto tests_path = boost::filesystem::canonical(JUCI_TESTS_PATH);
|
||
|
9 years ago
|
{
|
||
|
8 years ago
|
auto project_path = boost::filesystem::canonical(tests_path / "..");
|
||
|
|
|
||
|
9 years ago
|
{
|
||
|
|
CMake cmake(project_path);
|
||
|
8 years ago
|
TinyProcessLib::Process process("cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON ..", (project_path / "build").string(), [](const char *bytes, size_t n) {});
|
||
|
|
g_assert(process.get_exit_status() == 0);
|
||
|
|
|
||
|
|
g_assert(cmake.get_executable(project_path / "build", project_path) == "");
|
||
|
6 years ago
|
g_assert(cmake.get_executable(project_path / "build" / "non_existing_file.cpp", project_path) == "");
|
||
|
9 years ago
|
}
|
||
|
|
{
|
||
|
8 years ago
|
CMake cmake(project_path / "src");
|
||
|
|
g_assert(cmake.get_executable(project_path / "build", project_path / "src") == project_path / "build" / "src" / "juci");
|
||
|
6 years ago
|
g_assert(cmake.get_executable(project_path / "build", project_path / "src" / "cmake.cpp") == project_path / "build" / "src" / "juci");
|
||
|
|
g_assert(cmake.get_executable(project_path / "build", project_path / "src" / "juci.cpp") == project_path / "build" / "src" / "juci");
|
||
|
|
g_assert(cmake.get_executable(project_path / "build", project_path / "src" / "non_existing_file.cpp") == project_path / "build" / "src" / "juci");
|
||
|
9 years ago
|
}
|
||
|
|
{
|
||
|
|
CMake cmake(tests_path);
|
||
|
8 years ago
|
|
||
|
|
g_assert(cmake.project_path == project_path);
|
||
|
|
|
||
|
|
auto functions_parameters = cmake.get_functions_parameters("project");
|
||
|
|
g_assert(functions_parameters.at(0).second.at(0) == "juci");
|
||
|
|
|
||
|
|
g_assert(cmake.get_executable(project_path / "build", tests_path).parent_path() == project_path / "build" / "tests");
|
||
|
6 years ago
|
g_assert(cmake.get_executable(project_path / "build", tests_path / "cmake_build_test.cpp") == project_path / "build" / "tests" / "cmake_build_test");
|
||
|
|
g_assert(cmake.get_executable(project_path / "build", tests_path / "non_existing_file.cpp").parent_path() == project_path / "build" / "tests");
|
||
|
9 years ago
|
}
|
||
|
8 years ago
|
|
||
|
|
auto build = Project::Build::create(tests_path);
|
||
|
|
g_assert(dynamic_cast<Project::CMakeBuild *>(build.get()));
|
||
|
|
|
||
|
|
build = Project::Build::create(tests_path / "stubs");
|
||
|
|
g_assert(dynamic_cast<Project::CMakeBuild *>(build.get()));
|
||
|
|
g_assert(build->project_path == project_path);
|
||
|
|
|
||
|
|
Config::get().project.default_build_path = "./build";
|
||
|
|
g_assert(build->get_default_path() == project_path / "build");
|
||
|
|
|
||
|
|
Config::get().project.debug_build_path = "<default_build_path>/debug";
|
||
|
|
g_assert(build->get_debug_path() == project_path / "build/debug");
|
||
|
|
|
||
|
|
auto project_path_filename = project_path.filename();
|
||
|
|
Config::get().project.debug_build_path = "../debug_<project_directory_name>";
|
||
|
|
g_assert(build->get_debug_path() == project_path.parent_path() / ("debug_" + project_path_filename.string()));
|
||
|
|
|
||
|
|
Config::get().project.default_build_path = "../build_<project_directory_name>";
|
||
|
|
g_assert(build->get_default_path() == project_path.parent_path() / ("build_" + project_path_filename.string()));
|
||
|
9 years ago
|
}
|
||
|
|
{
|
||
|
8 years ago
|
auto project_path = tests_path / "source_clang_test_files";
|
||
|
9 years ago
|
CMake cmake(project_path);
|
||
|
8 years ago
|
|
||
|
|
g_assert(cmake.project_path == project_path);
|
||
|
|
|
||
|
|
g_assert(cmake.get_executable(project_path / "build", project_path / "main.cpp") == boost::filesystem::path(".") / "test");
|
||
|
|
g_assert(cmake.get_executable(project_path / "build", project_path / "non_existing_file.cpp") == boost::filesystem::path(".") / "test");
|
||
|
|
g_assert(cmake.get_executable(project_path / "build", project_path) == boost::filesystem::path(".") / "test");
|
||
|
9 years ago
|
}
|
||
|
10 years ago
|
}
|