Esempio n. 1
0
    def test_define_linux_flags_with_std(self):
        """Define Linux Flags"""

        self.data_test['cmake'] = get_cmake_lists('./')
        self.data_test['std'] = 'c++17'
        under_test = Flags(self.data_test)
        under_test.define_linux_flags()
        self.data_test['cmake'].close()

        cmakelists_test = open('%s/CMakeLists.txt' % self.cur_dir, 'r')
        content_test = cmakelists_test.read()

        self.assertTrue('-std=c++17' in content_test)
        cmakelists_test.close()

        self.data_test['cmake'] = get_cmake_lists('./')
        self.data_test['std'] = 'c++19'
        under_test = Flags(self.data_test)
        under_test.define_linux_flags()
        self.data_test['cmake'].close()

        cmakelists_test = open('%s/CMakeLists.txt' % self.cur_dir, 'r')
        content_test = cmakelists_test.read()

        self.assertTrue('-std=c++11' in content_test)
        cmakelists_test.close()
Esempio n. 2
0
    def test_define_linux_flags_with_std(self):
        """Define Linux Flags"""

        self.data_test['cmake'] = get_cmake_lists('./')
        self.data_test['std'] = 'c++17'
        under_test = Flags(self.data_test)
        under_test.define_linux_flags()
        self.data_test['cmake'].close()

        cmakelists_test = open('%s/CMakeLists.txt' % self.cur_dir, 'r')
        content_test = cmakelists_test.read()

        self.assertTrue('-std=c++17' in content_test)
        cmakelists_test.close()

        self.data_test['cmake'] = get_cmake_lists('./')
        self.data_test['std'] = 'c++19'
        under_test = Flags(self.data_test)
        under_test.define_linux_flags()
        self.data_test['cmake'].close()

        cmakelists_test = open('%s/CMakeLists.txt' % self.cur_dir, 'r')
        content_test = cmakelists_test.read()

        self.assertTrue('-std=c++11' in content_test)
        cmakelists_test.close()
    def init_files(self, vs_project, cmake_lists):
        """
        Initialize opening of CMakeLists.txt and VS Project files

        :param vs_project: Visual Studio project file path
        :type vs_project: str
        :param cmake_lists: CMakeLists.txt file path
        :type cmake_lists: str
        """

        # VS Project (.vcxproj)
        temp_path = os.path.splitext(vs_project)
        if temp_path[1] == '.vcxproj':
            message('Path to project = %s' % vs_project, '')
            self.data['vcxproj'] = get_vcxproj_data(vs_project)
        else:  # pragma: no cover
            message(
                'This file is not a ".vcxproj". Be sure you give the right file',
                'error')
            exit(1)

        # CMake Project (CMakeLists.txt)
        if os.path.exists(cmake_lists):
            self.data['cmake'] = get_cmake_lists(cmake_lists)
        else:
            message(
                'The path given for the CMakeLists does not exist ! '
                'He will be generated in current directory.', 'error')
            self.data['cmake'] = get_cmake_lists()

        self.write_cmake_headers(vs_project)
    def test_add_cmake_project(self):
        """Add CMake Project"""

        self.data_test['cmake'] = get_cmake_lists(self.cur_dir)
        under_test = ProjectVariables(self.data_test)

        # Case CXX language
        under_test.add_cmake_project(['cpp'])

        self.data_test['cmake'].close()

        cmakelists_test = open('%s/CMakeLists.txt' % self.cur_dir, 'r')
        content_test = cmakelists_test.read()

        self.assertTrue('project(${PROJECT_NAME} CXX)' in content_test)

        cmakelists_test.close()

        # Case C language
        under_test.cmake = get_cmake_lists(self.cur_dir)
        under_test.add_cmake_project(['c'])

        under_test.cmake.close()

        cmakelists_test = open('%s/CMakeLists.txt' % self.cur_dir, 'r')
        content_test = cmakelists_test.read()

        self.assertTrue('project(${PROJECT_NAME} C)' in content_test)

        cmakelists_test.close()
Esempio n. 5
0
    def init_files(self, vs_project, cmake_lists):
        """
        Initialize opening of CMake and VS Project files

        :param vs_project: Visual Studio project file path
        :type vs_project: str
        :param cmake_lists: CMakeLists.txt file path
        :type cmake_lists: str
        """

        # VS Project (.vcxproj)
        if vs_project:
            temp_path = os.path.splitext(vs_project)
            if temp_path[1] == '.vcxproj':
                send('Project to convert = ' + vs_project, '')
                self.data['vcxproj'] = get_vcxproj_data(vs_project)
            else:  # pragma: no cover
                send(
                    'This file is not a ".vcxproj". Be sure you give the right file',
                    'error')
                exit(1)

        # CMakeLists
        if cmake_lists:
            if os.path.exists(cmake_lists):
                self.data['cmake'] = get_cmake_lists(cmake_lists)

        if not self.data['cmake']:
            send(
                'CMakeLists.txt path is not set. '
                'He will be generated in current directory.', 'warn')
            self.data['cmake'] = get_cmake_lists()
    def test_add_cmake_project(self):
        """Add CMake Project"""

        self.data_test['cmake'] = get_cmake_lists(self.cur_dir)
        under_test = ProjectVariables(self.data_test)

        # Case CXX language
        under_test.add_cmake_project(['cpp'])

        self.data_test['cmake'].close()

        cmakelists_test = open('%s/CMakeLists.txt' % self.cur_dir, 'r')
        content_test = cmakelists_test.read()

        self.assertTrue('project(${PROJECT_NAME} CXX)' in content_test)

        cmakelists_test.close()

        # Case C language
        under_test.cmake = get_cmake_lists(self.cur_dir)
        under_test.add_cmake_project(['c'])

        under_test.cmake.close()

        cmakelists_test = open('%s/CMakeLists.txt' % self.cur_dir, 'r')
        content_test = cmakelists_test.read()

        self.assertTrue('project(${PROJECT_NAME} C)' in content_test)

        cmakelists_test.close()
    def test_add_outputs_variables(self):
        """Add Outputs Variables"""

        # If NO output is given
        self.data_test['cmake'] = get_cmake_lists(self.cur_dir)
        under_test = ProjectVariables(self.data_test)

        under_test.add_project_variables()
        under_test.add_outputs_variables()

        self.data_test['cmake'].close()

        cmakelists_test = open('%s/CMakeLists.txt' % self.cur_dir, 'r')
        content_test = cmakelists_test.read()

        self.assertTrue('OUTPUT_DEBUG ../../../build/vc2017_x64d/bin/', content_test)
        self.assertTrue('OUTPUT_REL ../../../build/vc2017_x64/bin/' in content_test)

        cmakelists_test.close()

        # If output is given
        under_test.output = '../output_binaries'
        under_test.cmake = get_cmake_lists(self.cur_dir)
        under_test.add_outputs_variables()

        under_test.cmake.close()

        cmakelists_test = open('%s/CMakeLists.txt' % self.cur_dir, 'r')
        content_test = cmakelists_test.read()

        self.assertTrue('OUTPUT_DEBUG ../output_binaries/${CMAKE_BUILD_TYPE}', content_test)
        self.assertTrue('OUTPUT_REL ../output_binaries/${CMAKE_BUILD_TYPE}' in content_test)

        cmakelists_test.close()
Esempio n. 8
0
    def init_files(self, vs_project, cmake_lists):
        """
        Initialize opening of CMakeLists.txt and VS Project files

        :param vs_project: Visual Studio project file path
        :type vs_project: str
        :param cmake_lists: CMakeLists.txt file path
        :type cmake_lists: str
        """

        # VS Project (.vcxproj)
        if vs_project:
            temp_path = os.path.splitext(vs_project)
            if temp_path[1] == '.vcxproj':
                send('Project to convert = ' + vs_project, '')
                self.data['vcxproj'] = get_vcxproj_data(vs_project)
            else:  # pragma: no cover
                send('This file is not a ".vcxproj". Be sure you give the right file', 'error')
                exit(1)

        # Cmake Porject (CMakeLists.txt)
        if cmake_lists:
            if os.path.exists(cmake_lists):
                self.data['cmake'] = get_cmake_lists(cmake_lists)

        if not self.data['cmake']:
            send(
                'CMakeLists.txt path is not set. '
                'He will be generated in current directory.',
                'warn'
            )
            self.data['cmake'] = get_cmake_lists()
    def test_inclusion_of_cmake_is_written(self):
        """Inclusion of ".cmake" File is Written"""

        data_test = {
            'cmake': './',
            'cmakeoutput': '',
            'vcxproj': self.vs_project,
            'project': self.vs_project,
            'dependencies': [],
            'include': '../../test.txt',
            'includecmake': '../../test.cmake',
            'additional': '',
            'std': '',
        }
        under_test = DataConverter(data_test)
        under_test.init_files(self.vs_project, '.')
        under_test.data['cmake'] = get_cmake_lists('./')

        under_test.create_data()
        under_test.close_cmake_file()

        cmakelists_test = open('CMakeLists.txt')

        content_test = cmakelists_test.read()

        # Includes are added
        self.assertTrue('Include files and directories' in content_test)
        self.assertTrue('../../test.cmake' in content_test)

        # File "test.txt" is not added because it does not exist
        self.assertTrue('../../test.txt' not in content_test)

        cmakelists_test.close()
    def test_add_artefact_target_outputs(self):
        """Add Artefact Target Outputs"""

        self.data_test['cmake'] = get_cmake_lists(self.cur_dir)
        under_test = ProjectVariables(self.data_test)

        under_test.add_artefact_target_outputs()

        self.data_test['cmake'].close()

        cmakelists_test = open('%s/CMakeLists.txt' % self.cur_dir, 'r')
        content_test = cmakelists_test.read()

        self.assertTrue(
            'set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${OUTPUT_DEBUG}")'
            in content_test)
        self.assertTrue(
            'set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${OUTPUT_DEBUG}")'
            in content_test)
        self.assertTrue(
            'set(CMAKE_EXECUTABLE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${OUTPUT_DEBUG}'
            in content_test)

        self.assertTrue(
            'set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${OUTPUT_REL}")'
            in content_test)
        self.assertTrue(
            'set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${OUTPUT_REL}")'
            in content_test)
        self.assertTrue(
            'set(CMAKE_EXECUTABLE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${OUTPUT_REL}'
            in content_test)

        cmakelists_test.close()
    def test_add_artefact_target_outputs(self):
        """Add Artefact Target Outputs"""

        self.data_test['cmake'] = get_cmake_lists(self.cur_dir)
        under_test = ProjectVariables(self.data_test)

        under_test.add_artefact_target_outputs()

        self.data_test['cmake'].close()

        cmakelists_test = open('%s/CMakeLists.txt' % self.cur_dir, 'r')
        content_test = cmakelists_test.read()

        self.assertTrue(
            'set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${OUTPUT_DEBUG}")' in content_test
        )
        self.assertTrue(
            'set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${OUTPUT_DEBUG}")' in content_test
        )
        self.assertTrue(
            'set(CMAKE_EXECUTABLE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${OUTPUT_DEBUG}' in content_test
        )

        self.assertTrue(
            'set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${OUTPUT_REL}")' in content_test
        )
        self.assertTrue(
            'set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${OUTPUT_REL}")' in content_test
        )
        self.assertTrue(
            'set(CMAKE_EXECUTABLE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${OUTPUT_REL}' in content_test
        )

        cmakelists_test.close()
    def test_get_cmakelists(self):
        """Get CMakeLists.txt"""

        under_test = get_cmake_lists('./')

        self.assertTrue(under_test)
        self.assertIsInstance(under_test, _io.TextIOWrapper)
    def test_add_outputs_variables(self):
        """Add Outputs Variables"""

        # TODO If NO output is given
        # self.data_test['cmake'] = get_cmake_lists(context, self.cur_dir)
        under_test = VCXProjectVariables(self.data_test)
        #
        # under_test.add_project_variables()
        # under_test.add_outputs_variables()
        #
        # self.data_test['cmake'].close()
        #
        # cmakelists_test = open('%s/CMakeLists.txt' % self.cur_dir)
        # content_test = cmakelists_test.read()
        #
        # self.assertTrue('OUTPUT_DEBUG ../../../build/vc2017_x64d/bin/', content_test)
        # self.assertTrue('OUTPUT_REL ../../../build/vc2017_x64/bin/' in content_test)
        #
        # cmakelists_test.close()

        # If output is given
        under_test.output = '../output_binaries'
        under_test.cmake = get_cmake_lists(context, self.cur_dir)
        under_test.add_outputs_variables()

        under_test.cmake.close()

        cmakelists_test = open('%s/CMakeLists.txt' % self.cur_dir)
        content_test = cmakelists_test.read()

        self.assertTrue('OUTPUT_DEBUG ../output_binaries/${CMAKE_BUILD_TYPE}', content_test)
        self.assertTrue('OUTPUT_REL ../output_binaries/${CMAKE_BUILD_TYPE}' in content_test)

        cmakelists_test.close()
Esempio n. 14
0
    def test_get_cmakelists(self):
        """Get CMakeLists.txt"""

        under_test = get_cmake_lists('./')

        self.assertTrue(under_test)
        self.assertIsInstance(under_test, _io.TextIOWrapper)
Esempio n. 15
0
    def test_write_flags(self):
        """Write Flags"""

        self.data_test['cmake'] = get_cmake_lists('./')
        under_test = Flags(self.data_test)
        self.assertFalse(under_test.win_deb_flags)
        self.assertFalse(under_test.win_rel_flags)

        under_test.write_flags()

        self.assertTrue(under_test.win_deb_flags)
        self.assertEqual(' /W4 /MD /Od /Zi /EHsc', under_test.win_deb_flags)
        self.assertTrue(under_test.win_rel_flags)
        self.assertEqual(' /W4 /GL /Od /Oi /Gy /Zi /EHsc',
                         under_test.win_rel_flags)

        self.data_test['cmake'].close()

        cmakelists_test = open('CMakeLists.txt', 'r')
        content_test = cmakelists_test.read()

        self.assertTrue(' /W4 /MD /Od /Zi /EHsc' in content_test)
        self.assertTrue(' /W4 /GL /Od /Oi /Gy /Zi /EHsc' in content_test)

        cmakelists_test.close()
Esempio n. 16
0
class TestFlags(unittest2.TestCase):
    """
        This file test methods of Flags class.
    """

    cur_dir = os.path.dirname(os.path.realpath(__file__))
    vs_project = get_vcxproj_data('%s/datatest/foo.vcxproj' % cur_dir)
    cmake_lists_test = get_cmake_lists('./')

    data_test = {
        'cmake': cmake_lists_test,
        'cmake_output': None,
        'vcxproj': vs_project,
        'dependencies': None,
        'includes': None,
        'additional_code': None,
        'std': None,
    }

    def test_define_linux_flags_with_std(self):
        """Define Linux Flags"""

        self.data_test['cmake'] = get_cmake_lists('./')
        self.data_test['std'] = 'c++17'
        under_test = Flags(self.data_test)
        under_test.define_linux_flags()
        self.data_test['cmake'].close()

        cmakelists_test = open('%s/CMakeLists.txt' % self.cur_dir, 'r')
        content_test = cmakelists_test.read()

        self.assertTrue('-std=c++17' in content_test)
        cmakelists_test.close()

        self.data_test['cmake'] = get_cmake_lists('./')
        self.data_test['std'] = 'c++19'
        under_test = Flags(self.data_test)
        under_test.define_linux_flags()
        self.data_test['cmake'].close()

        cmakelists_test = open('%s/CMakeLists.txt' % self.cur_dir, 'r')
        content_test = cmakelists_test.read()

        self.assertTrue('-std=c++11' in content_test)
        cmakelists_test.close()

    def test_define_group_properties(self):
        """Define XML Groups Properties"""

        under_test = Flags(self.data_test)

        self.assertFalse(under_test.propertygroup)
        self.assertFalse(under_test.definitiongroups)

        under_test.define_settings()
        under_test.define_group_properties()

        self.assertTrue(under_test.propertygroup)
        self.assertTrue(under_test.definitiongroups)
Esempio n. 17
0
    def test_get_cmakelists(self):
        """Get CMakeLists.txt"""

        context = VSContext()
        under_test = get_cmake_lists(context, './')

        self.assertTrue(under_test)
        self.assertIsInstance(under_test, _io.TextIOWrapper)
        under_test.close()
Esempio n. 18
0
    def test_add_additional_code(self):
        """Add Additional CMake Code"""

        # When file is empty, nothing is added
        self.data_test['cmake'] = get_cmake_lists(context, self.cur_dir)
        under_test = ProjectFiles(self.data_test)

        under_test.add_additional_code(context, '')

        under_test.cmake.close()

        cmakelists_test = open('%s/CMakeLists.txt' % self.cur_dir)
        content_test = cmakelists_test.read()

        self.assertEqual('', content_test)
        cmakelists_test.close()

        # When file exist, code is added
        under_test.cmake = get_cmake_lists(context, self.cur_dir)
        under_test.add_additional_code(
            context, '%s/datatest/additional_code_test.cmake' % self.cur_dir)

        under_test.cmake.close()

        cmakelists_test = open('%s/CMakeLists.txt' % self.cur_dir)
        content_test = cmakelists_test.read()

        self.assertTrue('set(ADD_CODE code)' in content_test)

        cmakelists_test.close()

        # When file does not exist, nothing is added
        under_test.cmake = get_cmake_lists(context, self.cur_dir)
        under_test.add_additional_code(context,
                                       'nofile/additional_code_test.cmake')

        under_test.cmake.close()

        cmakelists_add_test = open('%s/CMakeLists.txt' % self.cur_dir)
        content_add_test = cmakelists_add_test.read()

        self.assertEqual('', content_add_test)

        cmakelists_test.close()
Esempio n. 19
0
    def convert_project(self, context, xml_project_path,
                        cmake_lists_destination_path):
        """
        Method template for data collecting and writing

        """
        # Initialize Context of DataConverter
        if not context.init(xml_project_path, cmake_lists_destination_path):
            message(context,
                    'Unknown project type at {0}'.format(xml_project_path),
                    'error')
            return False

        message(context,
                'Conversion started: Project {0}'.format(context.project_name),
                'done')
        message(context,
                'Collecting data for project {0}'.format(context.vcxproj_path),
                '')
        self.collect_data(context)
        self.verify_data(context)
        self.merge_data_settings(context)
        if context.dry:
            return True
        if os.path.exists(context.cmake + '/CMakeLists.txt'):
            cmake_file = get_cmake_lists(context, context.cmake, 'a')
            cmake_file.write('\n' * 26)
        else:
            cmake_file = get_cmake_lists(context, context.cmake)
        message(context,
                'Writing data for project {0}'.format(context.vcxproj_path),
                '')
        self.write_data(context, cmake_file)
        cmake_file.close()
        warnings = ''
        if context.warnings_count > 0:
            warnings = ' ({} warnings)'.format(context.warnings_count)
        message(
            context,
            'Conversion done   : Project {}{}'.format(context.project_name,
                                                      warnings), 'done')

        return True
    def test_write_dependencies(self):
        """Write Dependencies"""

        self.data_test['cmake'] = get_cmake_lists('./')
        under_test = Dependencies(self.data_test)

        # Add dependencies from ".vcxproj"
        under_test.write_dependencies()
        self.data_test['cmake'].close()

        cmakelists_test = open('CMakeLists.txt')
        content_test = cmakelists_test.read()

        print(content_test)
        self.assertTrue('add_subdirectory("${G3LOGGER_DIR}"' in content_test)
        self.assertTrue(
            'link_directories(${DEPENDENCIES_DIR}/g3log)' in content_test)

        cmakelists_test.close()

        # Add dependencies from "parameters"
        dependencies = ['external/zlib/cmake/', '../../external/g3log/cmake/']
        self.data_test['dependencies'] = dependencies
        self.data_test['cmake'] = get_cmake_lists('./')
        under_test = Dependencies(self.data_test)

        under_test.write_dependencies()
        self.data_test['cmake'].close()

        cmakelists_test = open('CMakeLists.txt')
        content_test = cmakelists_test.read()

        self.assertTrue(
            'add_subdirectory(external/zlib/cmake/ ${CMAKE_BINARY_DIR}/lib1)'
            in content_test)
        self.assertTrue(
            'add_subdirectory(../../external/g3log/cmake/ ${CMAKE_BINARY_DIR}/lib2)'
            in content_test)
        self.assertTrue(
            'link_directories(${DEPENDENCIES_DIR}/g3log)' in content_test)

        cmakelists_test.close()
Esempio n. 21
0
    def test_add_additional_code(self):
        """Add Additional CMake Code"""

        # When file is empty, nothing is added
        self.data_test['cmake'] = get_cmake_lists(self.cur_dir)
        under_test = ProjectFiles(self.data_test)

        under_test.add_additional_code('')

        under_test.cmake.close()

        cmakelists_test = open('%s/CMakeLists.txt' % self.cur_dir, 'r')
        content_test = cmakelists_test.read()

        self.assertEqual('', content_test)
        cmakelists_test.close()

        # When file exist, code is added
        under_test.cmake = get_cmake_lists(self.cur_dir)
        under_test.add_additional_code('%s/test_files/additional_code_test.cmake' % self.cur_dir)

        under_test.cmake.close()

        cmakelists_test = open('%s/CMakeLists.txt' % self.cur_dir, 'r')
        content_test = cmakelists_test.read()

        self.assertTrue('set(ADD_CODE code)' in content_test)

        cmakelists_test.close()

        # When file does not exist, nothing is added
        under_test.cmake = get_cmake_lists(self.cur_dir)
        under_test.add_additional_code('nofile/additional_code_test.cmake')

        under_test.cmake.close()

        cmakelists_add_test = open('%s/CMakeLists.txt' % self.cur_dir, 'r')
        content_add_test = cmakelists_add_test.read()

        self.assertEqual('', content_add_test)

        cmakelists_test.close()
Esempio n. 22
0
    def test_write_dependencies(self):
        """Write Dependencies"""

        self.data_test['cmake'] = get_cmake_lists('./')
        under_test = Dependencies(self.data_test)

        under_test.write_dependencies()
        self.data_test['cmake'].close()

        cmakelists_test = open('CMakeLists.txt', 'r')
        content_test = cmakelists_test.read()

        self.assertTrue(
            'add_subdirectory(platform/cmake/g3log ${CMAKE_BINARY_DIR}/g3log'
            in content_test)
        self.assertTrue(
            'add_subdirectory(platform/cmake/zlib ${CMAKE_BINARY_DIR}/zlib' in
            content_test)

        cmakelists_test.close()

        dependencies = ['external/zlib/cmake/', '../../external/g3log/cmake/']
        self.data_test['dependencies'] = dependencies
        self.data_test['cmake'] = get_cmake_lists('./')
        under_test = Dependencies(self.data_test)

        under_test.write_dependencies()
        self.data_test['cmake'].close()

        cmakelists_test = open('CMakeLists.txt', 'r')
        content_test = cmakelists_test.read()

        self.assertTrue(
            'add_subdirectory(external/zlib/cmake/ ${CMAKE_BINARY_DIR}/lib1)'
            in content_test)
        self.assertTrue(
            'add_subdirectory(../../external/g3log/cmake/ ${CMAKE_BINARY_DIR}/lib2)'
            in content_test)

        cmakelists_test.close()
    def test_add_include_cmake(self):
        """Add Include CMake File"""

        self.data_test['cmake'] = get_cmake_lists(context, self.cur_dir)
        under_test = ProjectFiles(self.data_test)

        under_test.add_include_cmake('path/to/file.cmake')
        self.data_test['cmake'].close()

        cmakelists_test = open('%s/CMakeLists.txt' % self.cur_dir)
        content_test = cmakelists_test.read()

        self.assertTrue('include("path/to/file.cmake")' in content_test)
    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)
Esempio n. 25
0
    def test_link_dependencies(self):
        """Link Dependencies"""

        self.data_test['cmake'] = get_cmake_lists('./')
        under_test = Dependencies(self.data_test)

        under_test.link_dependencies()
        self.data_test['cmake'].close()

        cmakelists_test = open('CMakeLists.txt', 'r')

        self.assertTrue('target_link_libraries(${PROJECT_NAME}' in cmakelists_test.read())

        cmakelists_test.close()
    def test_link_dependencies(self):
        """Link Dependencies"""

        self.data_test['cmake'] = get_cmake_lists('./')
        under_test = Dependencies(self.data_test)

        under_test.link_dependencies()
        self.data_test['cmake'].close()

        cmakelists_test = open('CMakeLists.txt')

        self.assertTrue(
            'target_link_libraries(${PROJECT_NAME}' in cmakelists_test.read())

        cmakelists_test.close()
Esempio n. 27
0
    def test_write_dependencies(self):
        """Write Dependencies"""

        self.data_test['cmake'] = get_cmake_lists('./')
        under_test = Dependencies(self.data_test)

        under_test.write_dependencies()
        self.data_test['cmake'].close()

        cmakelists_test = open('CMakeLists.txt', 'r')
        content_test = cmakelists_test.read()

        self.assertTrue(
            'add_subdirectory(platform/cmake/g3log ${CMAKE_BINARY_DIR}/g3log' in content_test)
        self.assertTrue(
            'add_subdirectory(platform/cmake/zlib ${CMAKE_BINARY_DIR}/zlib' in content_test)

        cmakelists_test.close()

        dependencies = ['external/zlib/cmake/', '../../external/g3log/cmake/']
        self.data_test['dependencies'] = dependencies
        self.data_test['cmake'] = get_cmake_lists('./')
        under_test = Dependencies(self.data_test)

        under_test.write_dependencies()
        self.data_test['cmake'].close()

        cmakelists_test = open('CMakeLists.txt', 'r')
        content_test = cmakelists_test.read()

        self.assertTrue(
            'add_subdirectory(external/zlib/cmake/ ${CMAKE_BINARY_DIR}/lib1)' in content_test)
        self.assertTrue(
            'add_subdirectory(../../external/g3log/cmake/ ${CMAKE_BINARY_DIR}/lib2)' in content_test)

        cmakelists_test.close()
Esempio n. 28
0
    def test_add_project_variables(self):
        """Add Project Variables"""

        self.data_test['cmake'] = get_cmake_lists(context, self.cur_dir)
        under_test = VCXProjectVariables(self.data_test)

        under_test.add_project_variables()

        self.data_test['cmake'].close()

        cmakelists_test = open('%s/CMakeLists.txt' % self.cur_dir)
        content_test = cmakelists_test.read()

        self.assertTrue('set(PROJECT_NAME core)' in content_test)

        cmakelists_test.close()
Esempio n. 29
0
    def test_write_source_files(self):
        """Write Source Files"""

        self.data_test['cmake'] = get_cmake_lists('./')
        under_test = ProjectFiles(self.data_test)

        under_test.write_source_files()

        self.data_test['cmake'].close()

        cmakelists_test = open('CMakeLists.txt', 'r')
        content_test = cmakelists_test.read()

        self.assertTrue('GLOB SRC_FILES' in content_test)
        self.assertTrue('CPP_DIR_1' in content_test)
        self.assertTrue('HEADER_DIR_1' in content_test)
    def test_add_default_target(self):
        """Add Release as Default Target"""

        self.data_test['cmake'] = get_cmake_lists(self.cur_dir)
        under_test = ProjectVariables(self.data_test)

        under_test.add_default_target()

        self.data_test['cmake'].close()

        cmakelists_test = open('%s/CMakeLists.txt' % self.cur_dir, 'r')
        content_test = cmakelists_test.read()

        self.assertTrue('set(CMAKE_BUILD_TYPE "Release")' in content_test)

        cmakelists_test.close()
Esempio n. 31
0
    def test_write_include_dir(self):
        """Write Include Dirs"""

        self.data_test['cmake'] = get_cmake_lists('./')
        under_test = Dependencies(self.data_test)

        under_test.write_include_dir()
        self.data_test['cmake'].close()

        cmakelists_test = open('CMakeLists.txt', 'r')

        self.assertTrue(
            'include_directories(../../../external/g3log/latest/src)' in cmakelists_test.read()
        )

        cmakelists_test.close()
    def test_add_default_target(self):
        """Add Release as Default Target"""

        self.data_test['cmake'] = get_cmake_lists(self.cur_dir)
        under_test = ProjectVariables(self.data_test)

        under_test.add_default_target()

        self.data_test['cmake'].close()

        cmakelists_test = open('%s/CMakeLists.txt' % self.cur_dir, 'r')
        content_test = cmakelists_test.read()

        self.assertTrue('set(CMAKE_BUILD_TYPE "Release")' in content_test)

        cmakelists_test.close()
    def test_write_include_dir(self):
        """Write Include Dirs"""

        self.data_test['cmake'] = get_cmake_lists('./')
        under_test = Dependencies(self.data_test)

        under_test.write_include_dir()
        self.data_test['cmake'].close()

        cmakelists_test = open('CMakeLists.txt')

        self.assertTrue(
            'include_directories(../../../external/g3log/latest/src)' in
            cmakelists_test.read())

        cmakelists_test.close()
Esempio n. 34
0
    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.write_files_variables()
        under_test.write_source_files()

        self.data_test['cmake'].close()

        cmakelists_test = open('%s/CMakeLists.txt' % self.cur_dir, 'r')
        content_test = cmakelists_test.read()

        self.assertTrue('GLOB SRC_FILES' in content_test)
        self.assertTrue('CPP_DIR_1' in content_test)
        self.assertTrue('HEADER_DIR_1' in content_test)
Esempio n. 35
0
    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.add_target_artefact()

        self.data_test['cmake'].close()

        cmakelists_test = open('%s/CMakeLists.txt' % self.cur_dir, 'r')
        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()
    def test_add_project_variables(self):
        """Add Project Variables"""

        self.data_test['cmake'] = get_cmake_lists(self.cur_dir)
        under_test = ProjectVariables(self.data_test)

        under_test.add_project_variables()

        self.data_test['cmake'].close()

        cmakelists_test = open('%s/CMakeLists.txt' % self.cur_dir, 'r')
        content_test = cmakelists_test.read()

        self.assertTrue('cmake_minimum_required(VERSION 3.0.0 FATAL_ERROR)' in content_test)
        self.assertTrue('set(PROJECT_NAME core)' in content_test)

        cmakelists_test.close()
Esempio n. 37
0
    def test_write_variables(self):
        """Write Files Variables"""

        self.data_test['cmake'] = get_cmake_lists(self.cur_dir)
        under_test = ProjectFiles(self.data_test)

        under_test.write_files_variables()

        self.data_test['cmake'].close()

        cmakelists_test = open('%s/CMakeLists.txt' % self.cur_dir, 'r')
        content_test = cmakelists_test.read()

        self.assertTrue('CPP_DIR_1' in content_test)
        self.assertTrue('HEADER_DIR_1' in content_test)

        cmakelists_test.close()
Esempio n. 38
0
    def test_add_artefacts(self):
        """Add Artefact Target"""

        self.data_test['cmake'] = get_cmake_lists('./')
        under_test = ProjectFiles(self.data_test)

        under_test.add_target_artefact()

        self.data_test['cmake'].close()

        cmakelists_test = open('CMakeLists.txt', 'r')
        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()
    def test_add_project_variables(self):
        """Add Project Variables"""

        self.data_test['cmake'] = get_cmake_lists(self.cur_dir)
        under_test = ProjectVariables(self.data_test)

        under_test.add_project_variables()

        self.data_test['cmake'].close()

        cmakelists_test = open('%s/CMakeLists.txt' % self.cur_dir, 'r')
        content_test = cmakelists_test.read()

        self.assertTrue('cmake_minimum_required(VERSION 3.0.0 FATAL_ERROR)' in
                        content_test)
        self.assertTrue('set(PROJECT_NAME core)' in content_test)

        cmakelists_test.close()
Esempio n. 40
0
    def test_define_linux_flags(self):
        """Define Linux Flags"""

        self.data_test['cmake'] = get_cmake_lists('./')
        under_test = Flags(self.data_test)

        under_test.define_linux_flags()
        self.data_test['cmake'].close()

        self.assertFalse(under_test.win_deb_flags)
        self.assertFalse(under_test.win_rel_flags)

        cmakelists_test = open('CMakeLists.txt', 'r')
        content_test = cmakelists_test.read()

        self.assertTrue('-std=c++11 -fPIC' in content_test)

        cmakelists_test.close()
Esempio n. 41
0
    def test_define_linux_flags(self):
        """Define Linux Flags"""

        self.data_test['cmake'] = get_cmake_lists('./')
        under_test = Flags(self.data_test)

        under_test.define_linux_flags()
        self.data_test['cmake'].close()

        self.assertFalse(under_test.win_deb_flags)
        self.assertFalse(under_test.win_rel_flags)

        cmakelists_test = open('CMakeLists.txt', 'r')
        content_test = cmakelists_test.read()

        self.assertTrue('-std=c++11 -fPIC' in content_test)

        cmakelists_test.close()
    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)
Esempio n. 43
0
    def test_define_and_write_macro(self):
        """Define and Write Macros"""

        self.data_test['cmake'] = get_cmake_lists('./')
        define_and_write_macro(self.data_test)

        self.data_test['cmake'].close()

        cmakelists_test = open('CMakeLists.txt', 'r')
        under_test = cmakelists_test.read()

        macros_test = [
            '-D_CRT_NONSTDC_NO_DEPRECATE', '-D_DEBUG', '-D_WINDOWS',
            '-D_USRDLL', '-DCORE_EXPORTS', '-DUNICODE', '-D_UNICODE'
        ]

        for macro in macros_test:
            self.assertTrue(macro in under_test)

        cmakelists_test.close()
Esempio n. 44
0
    def test_define_and_write_macro(self):
        """Define and Write Macros"""

        self.data_test['cmake'] = get_cmake_lists('./')
        define_and_write_macro(self.data_test)

        self.data_test['cmake'].close()

        cmakelists_test = open('CMakeLists.txt', 'r')
        under_test = cmakelists_test.read()

        macros_test = [
            '-D_CRT_NONSTDC_NO_DEPRECATE', '-D_DEBUG', '-D_WINDOWS', '-D_USRDLL',
            '-DCORE_EXPORTS', '-DUNICODE', '-D_UNICODE'
        ]

        for macro in macros_test:
            self.assertTrue(macro in under_test)

        cmakelists_test.close()
Esempio n. 45
0
    def test_define_windows_flags(self):
        """Define Windows Flags"""

        self.data_test['cmake'] = get_cmake_lists('./')
        under_test = Flags(self.data_test)

        under_test.define_group_properties()
        under_test.define_windows_flags()
        self.data_test['cmake'].close()

        self.assertTrue(under_test.win_deb_flags)
        self.assertTrue(under_test.win_rel_flags)

        cmakelists_test = open('CMakeLists.txt', 'r')
        content_test = cmakelists_test.read()

        self.assertFalse('-std=c++11 -fPIC' in content_test)
        self.assertTrue(' /W4 /MD /Od /Zi /EHsc' in content_test)
        self.assertTrue(' /W4 /GL /Od /Oi /Gy /Zi /EHsc' in content_test)

        cmakelists_test.close()
Esempio n. 46
0
    def test_define_windows_flags(self):
        """Define Windows Flags"""

        self.data_test['cmake'] = get_cmake_lists('./')
        under_test = Flags(self.data_test)

        under_test.define_group_properties()
        under_test.define_windows_flags()
        self.data_test['cmake'].close()

        self.assertTrue(under_test.win_deb_flags)
        self.assertTrue(under_test.win_rel_flags)

        cmakelists_test = open('CMakeLists.txt', 'r')
        content_test = cmakelists_test.read()

        self.assertFalse('-std=c++11 -fPIC' in content_test)
        self.assertTrue(' /W4 /MD /Od /Zi /EHsc' in content_test)
        self.assertTrue(' /W4 /GL /Od /Oi /Gy /Zi /EHsc' in content_test)

        cmakelists_test.close()
Esempio n. 47
0
    def test_write_flags(self):
        """Write Flags"""

        self.data_test['cmake'] = get_cmake_lists('./')
        under_test = Flags(self.data_test)
        self.assertFalse(under_test.win_deb_flags)
        self.assertFalse(under_test.win_rel_flags)

        under_test.write_flags()

        self.assertTrue(under_test.win_deb_flags)
        self.assertEqual(' /W4 /MD /Od /Zi /EHsc', under_test.win_deb_flags)
        self.assertTrue(under_test.win_rel_flags)
        self.assertEqual(' /W4 /GL /Od /Oi /Gy /Zi /EHsc', under_test.win_rel_flags)

        self.data_test['cmake'].close()

        cmakelists_test = open('CMakeLists.txt', 'r')
        content_test = cmakelists_test.read()

        self.assertTrue(' /W4 /MD /Od /Zi /EHsc' in content_test)
        self.assertTrue(' /W4 /GL /Od /Oi /Gy /Zi /EHsc' in content_test)

        cmakelists_test.close()
class TestDependencies(unittest2.TestCase):
    """
        This file test methods of Dependencies class.
    """

    cur_dir = os.path.dirname(os.path.realpath(__file__))
    vs_project = get_vcxproj_data('%s/datatest/foo.vcxproj' % cur_dir)
    cmake_lists_test = get_cmake_lists('./')

    data_test = {
        'cmake': cmake_lists_test,
        'cmake_output': None,
        'vcxproj': vs_project,
        'project': '%s/datatest/foo.vcxproj' % cur_dir,
        'dependencies': [],
        'includes': None,
        'additional_code': None,
        'std': None,
    }

    def test_init_dependencies(self):
        """Initialize Dependencies"""

        under_test = Dependencies(self.data_test)

        self.assertTrue(under_test.cmake)
        self.assertTrue(under_test.tree)
        self.assertTrue(under_test.ns)
        self.assertFalse(under_test.custom_dependencies)

    def test_write_include_dir(self):
        """Write Include Dirs"""

        self.data_test['cmake'] = get_cmake_lists('./')
        under_test = Dependencies(self.data_test)

        under_test.write_include_dir()
        self.data_test['cmake'].close()

        cmakelists_test = open('CMakeLists.txt')

        self.assertTrue(
            'include_directories(../../../external/g3log/latest/src)' in
            cmakelists_test.read())

        cmakelists_test.close()

    def test_write_dependencies(self):
        """Write Dependencies"""

        self.data_test['cmake'] = get_cmake_lists('./')
        under_test = Dependencies(self.data_test)

        # Add dependencies from ".vcxproj"
        under_test.write_dependencies()
        self.data_test['cmake'].close()

        cmakelists_test = open('CMakeLists.txt')
        content_test = cmakelists_test.read()

        print(content_test)
        self.assertTrue('add_subdirectory("${G3LOGGER_DIR}"' in content_test)
        self.assertTrue(
            'link_directories(${DEPENDENCIES_DIR}/g3log)' in content_test)

        cmakelists_test.close()

        # Add dependencies from "parameters"
        dependencies = ['external/zlib/cmake/', '../../external/g3log/cmake/']
        self.data_test['dependencies'] = dependencies
        self.data_test['cmake'] = get_cmake_lists('./')
        under_test = Dependencies(self.data_test)

        under_test.write_dependencies()
        self.data_test['cmake'].close()

        cmakelists_test = open('CMakeLists.txt')
        content_test = cmakelists_test.read()

        self.assertTrue(
            'add_subdirectory(external/zlib/cmake/ ${CMAKE_BINARY_DIR}/lib1)'
            in content_test)
        self.assertTrue(
            'add_subdirectory(../../external/g3log/cmake/ ${CMAKE_BINARY_DIR}/lib2)'
            in content_test)
        self.assertTrue(
            'link_directories(${DEPENDENCIES_DIR}/g3log)' in content_test)

        cmakelists_test.close()

    def test_link_dependencies(self):
        """Link Dependencies"""

        self.data_test['cmake'] = get_cmake_lists('./')
        under_test = Dependencies(self.data_test)

        under_test.link_dependencies()
        self.data_test['cmake'].close()

        cmakelists_test = open('CMakeLists.txt')

        self.assertTrue(
            'target_link_libraries(${PROJECT_NAME}' in cmakelists_test.read())

        cmakelists_test.close()