void CMakeProvider::createWorkspace(const BuildSetup &setup) { std::string filename = setup.outputDir + "/CMakeLists.txt"; std::ofstream workspace(filename.c_str()); if (!workspace) error("Could not open \"" + filename + "\" for writing"); workspace << "cmake_minimum_required(VERSION 3.2)\n" "project(" << setup.projectDescription << ")\n\n"; workspace << "# Define the engines and subengines\n"; writeEngines(setup, workspace); writeSubEngines(setup, workspace); workspace << "# Generate options for the engines\n"; writeEngineOptions(workspace); workspace << "include_directories(${" << setup.projectDescription << "_SOURCE_DIR} ${" << setup.projectDescription << "_SOURCE_DIR}/engines " "$ENV{"<<LIBS_DEFINE<<"}/include .)\n\n"; workspace << "# Libraries and features\n\n"; writeFeatureLibSearch(setup, workspace, "sdl"); workspace << "# Depending on how SDL2 was built, there can be either and imported target or flags variables\n"; workspace << "# Define the flags variables from the imported target if necessary\n"; workspace << "if (TARGET SDL2::SDL2)\n"; workspace << " get_target_property(SDL2_INCLUDE_DIRS SDL2::SDL2 INTERFACE_INCLUDE_DIRECTORIES)\n"; workspace << " get_target_property(SDL2_LIBRARIES SDL2::SDL2 LOCATION)\n"; workspace << "endif()\n"; workspace << "include_directories(${SDL2_INCLUDE_DIRS})\n\n"; for (FeatureList::const_iterator i = setup.features.begin(), end = setup.features.end(); i != end; ++i) { if (!i->enable || featureExcluded(i->name)) continue; writeFeatureLibSearch(setup, workspace, i->name); workspace << "add_definitions(-D" << i->define << ")\n"; } workspace << "\n"; writeWarnings(workspace); writeDefines(setup, workspace); workspace << "# Generate definitions for the engines\n"; writeEngineDefinitions(workspace); workspace << "# Generate \"engines/plugins_table.h\"\n"; writeGeneratePluginsTable(workspace); }
void CMakeProvider::createWorkspace(const BuildSetup &setup) { std::string filename = setup.outputDir + "/CMakeLists.txt"; std::ofstream workspace(filename.c_str()); if (!workspace) error("Could not open \"" + filename + "\" for writing"); workspace << "cmake_minimum_required(VERSION 3.2)\n" "project(" << setup.projectDescription << ")\n\n"; workspace << "# Define the engines and subengines\n"; writeEngines(setup, workspace); writeSubEngines(setup, workspace); workspace << "# Generate options for the engines\n"; writeEngineOptions(workspace); workspace << "include_directories(${" << setup.projectDescription << "_SOURCE_DIR} ${" << setup.projectDescription << "_SOURCE_DIR}/engines\n" "$ENV{"<<LIBS_DEFINE<<"}/include)\n\n"; workspace << "# Libraries and features\n"; writeFeatureLibSearch(setup, workspace, "sdl"); for (FeatureList::const_iterator i = setup.features.begin(), end = setup.features.end(); i != end; ++i) { if (!i->enable || featureExcluded(i->name)) continue; writeFeatureLibSearch(setup, workspace, i->name); workspace << "add_definitions(-D" << i->define << ")\n"; } workspace << "\n"; writeWarnings(workspace); writeDefines(setup, workspace); workspace << "# Generate definitions for the engines\n"; writeEngineDefinitions(workspace); workspace << "# Generate \"engines/plugins_table.h\"\n"; writeGeneratePluginsTable(workspace); }