def create_data(self): """ Create the data and convert each part of "vcxproj" project """ # Write variables variables = ProjectVariables(self.data) variables.add_project_variables() files = ProjectFiles(self.data) files.collects_source_files() variables.add_cmake_project(files.language) variables.add_default_target() # Write Output Variables variables.add_cmake_output_directories() variables.write_project_messages() # Add includes files & directories if self.data['includecmake'] or self.data['include']: title = get_title('Includes', 'Include files and directories') self.data['cmake'].write(title) # Include ".cmake" file if self.data['includecmake']: files.add_include_cmake(self.data['includecmake']) # Write Include Directories depends = Dependencies(self.data) if self.data['include']: depends.write_include_dir() else: message('Include Directories is not set.', '') # Write Dependencies depends.write_dependencies() # Add additional code if self.data['additional'] is not None: files.add_additional_code(self.data['additional']) # Write and add Files files.write_source_files() if files.sources: files.add_target_artefact() # Write Flags all_flags = Flags(self.data) all_flags.write_flags() # Write Macro all_flags.write_defines_and_flags() # Link with other dependencies title = get_title('Link & Dependencies', 'Add project dependencies and Link to project') self.data['cmake'].write(title) depends.add_dependencies() depends.link_dependencies()
def test_collects_source_files(self): """Collects Source Files""" self.data_test['cmake'] = get_cmake_lists(self.cur_dir) under_test = ProjectFiles(self.data_test) self.assertFalse(under_test.sources) self.assertFalse(under_test.headers) under_test.collects_source_files() self.data_test['cmake'].close() self.assertTrue(under_test.sources) self.assertTrue(under_test.headers)
def test_write_source_files(self): """Write Source Files""" self.data_test['cmake'] = get_cmake_lists(self.cur_dir) under_test = ProjectFiles(self.data_test) under_test.collects_source_files() under_test.write_source_files() self.data_test['cmake'].close() cmakelists_test = open('%s/CMakeLists.txt' % self.cur_dir) content_test = cmakelists_test.read() self.assertTrue( 'source_group("Sources" FILES ${SRC_FILES})' in content_test) self.assertTrue( 'source_group("Headers" FILES ${HEADERS_FILES})' in content_test)
def test_add_artefacts(self): """Add Artefact Target""" self.data_test['cmake'] = get_cmake_lists(self.cur_dir) under_test = ProjectFiles(self.data_test) under_test.collects_source_files() under_test.add_target_artefact() self.data_test['cmake'].close() cmakelists_test = open('%s/CMakeLists.txt' % self.cur_dir) content_test = cmakelists_test.read() self.assertTrue('add_library(${PROJECT_NAME} SHARED' in content_test) self.assertTrue('${SRC_FILES}' in content_test) cmakelists_test.close()