From 4d7d7551fc6c9c8793a300a388e5a3aecea8c8c2 Mon Sep 17 00:00:00 2001 From: bbod Date: Tue, 19 Nov 2019 23:01:27 -0700 Subject: [PATCH] done --- HW8/.idea/vcs.xml | 1 + HW8/CMakeLists.txt | 95 +++++- HW8/cmake-build-debug/CMakeCache.txt | 190 ++++++++++- .../CMakeFiles/CMakeOutput.log | 38 +++ .../CMakeFiles/Makefile.cmake | 107 ++---- HW8/cmake-build-debug/CMakeFiles/Makefile2 | 288 ++++++++++++++++- .../CMakeFiles/TargetDirectories.txt | 30 +- .../CMakeFiles/clion-log.txt | 25 +- .../CMakeFiles/progress.marks | 2 +- HW8/cmake-build-debug/HW8.cbp | 3 + HW8/cmake-build-debug/Makefile | 186 ++++++++++- HW8/shared_ptr.hpp | 306 +++++++++++++++++- 12 files changed, 1147 insertions(+), 124 deletions(-) diff --git a/HW8/.idea/vcs.xml b/HW8/.idea/vcs.xml index 6c0b863..48c8f81 100644 --- a/HW8/.idea/vcs.xml +++ b/HW8/.idea/vcs.xml @@ -2,5 +2,6 @@ + \ No newline at end of file diff --git a/HW8/CMakeLists.txt b/HW8/CMakeLists.txt index d62b254..3322952 100644 --- a/HW8/CMakeLists.txt +++ b/HW8/CMakeLists.txt @@ -1,6 +1,97 @@ cmake_minimum_required(VERSION 3.14) -project(HW8) +project(hw7) set(CMAKE_CXX_STANDARD 17) -add_executable(HW8 main.cpp) \ No newline at end of file +# +# Manually specifying all the source files. +# +set(HEADER_FILES + shared_ptr.hpp) +set(SOURCE_FILES + #TestMemory.cpp + ) +set(UNIT_TEST_FILES + TestMemory.cpp) + +add_executable(SharedPtr ${HEADER_FILES} ${SOURCE_FILES} main.cpp) +add_executable(UnitTestRunner ${HEADER_FILES} ${SOURCE_FILES} ${UNIT_TEST_FILES}) + +# +# We want the C++ 17 standard for our project +# +set_property(TARGET SharedPtr PROPERTY CXX_STANDARD 17) +set_property(TARGET UnitTestRunner PROPERTY CXX_STANDARD 17) + +if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC") + target_compile_options(SharedPtr PRIVATE /W4 /permissive-) + target_compile_options(UnitTestRunner PRIVATE /W4 /permissive-) + set_target_properties(UnitTestRunner PROPERTIES LINK_FLAGS "/STACK:10000000") +elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") + target_compile_options(SharedPtr PRIVATE -Wall -Wextra -pedantic -Wl,--stack,10000000 -O3) + target_compile_options(UnitTestRunner PRIVATE -Wall -Wextra -pedantic -Wl,--stack,10000000 -O3) +endif() + +# +# Prepare a pre-build step to run clang-format over all the [ch]pp source files. +# Start by finding the location of the clang-format executable. +# +find_program(CLANG_FORMAT "clang-format") +if (CLANG_FORMAT) + # + # Need to take the simple source file locations used for the project and get their full + # file system locations for use in putting together the clang-format command line + # + unset(SOURCE_FILES_PATHS) + foreach(SOURCE_FILE ${HEADER_FILES} ${SOURCE_FILES} ${UNIT_TEST_FILES} main.cpp) + get_source_file_property(WHERE ${SOURCE_FILE} LOCATION) + set(SOURCE_FILES_PATHS ${SOURCE_FILES_PATHS} ${WHERE}) + endforeach() + + # + # This creates the clang-format target/command + # + add_custom_target( + ClangFormat + COMMAND ${CLANG_FORMAT} + -i + -style=file + ${SOURCE_FILES_PATHS} + ) + # + # This makes the clang-format target a dependency of the main GoogleTestIntro project + # +# add_dependencies(Weights ClangFormat) +else() + message("Unable to find clang-format") +endif() + +# +# Add GoogleTest +# +configure_file(CMakeLists.txt.in googletest-download/CMakeLists.txt) +execute_process(COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" . + RESULT_VARIABLE result + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/googletest-download ) +if(result) + message(FATAL_ERROR "CMake step for googletest failed: ${result}") +endif() +execute_process(COMMAND ${CMAKE_COMMAND} --build . + RESULT_VARIABLE result + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/googletest-download ) +if(result) + message(FATAL_ERROR "Build step for googletest failed: ${result}") +endif() + +# Prevent overriding the parent project's compiler/linker +# settings on Windows +set(gtest_force_shared_crt ON CACHE BOOL "" FORCE) + +# Add googletest directly to our build. This defines +# the gtest and gtest_main targets. +add_subdirectory(${CMAKE_CURRENT_BINARY_DIR}/googletest-src + ${CMAKE_CURRENT_BINARY_DIR}/googletest-build + EXCLUDE_FROM_ALL) + +# Now simply link against gtest or gtest_main as needed. Eg +target_link_libraries(UnitTestRunner gtest_main) \ No newline at end of file diff --git a/HW8/cmake-build-debug/CMakeCache.txt b/HW8/cmake-build-debug/CMakeCache.txt index 66f25f1..5808a3c 100644 --- a/HW8/cmake-build-debug/CMakeCache.txt +++ b/HW8/cmake-build-debug/CMakeCache.txt @@ -14,6 +14,12 @@ # EXTERNAL cache entries ######################## +//Builds the googlemock subproject +BUILD_GMOCK:BOOL=ON + +//Path to a program. +CLANG_FORMAT:FILEPATH=/usr/local/bin/clang-format + //Path to a program. CMAKE_AR:FILEPATH=/Library/Developer/CommandLineTools/usr/bin/ar @@ -92,12 +98,60 @@ CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING= //Enable/Disable output of compile commands during generation. CMAKE_EXPORT_COMPILE_COMMANDS:BOOL=OFF +//User executables (bin) +CMAKE_INSTALL_BINDIR:PATH=bin + +//Read-only architecture-independent data (DATAROOTDIR) +CMAKE_INSTALL_DATADIR:PATH= + +//Read-only architecture-independent data root (share) +CMAKE_INSTALL_DATAROOTDIR:PATH=share + +//Documentation root (DATAROOTDIR/doc/PROJECT_NAME) +CMAKE_INSTALL_DOCDIR:PATH= + +//C header files (include) +CMAKE_INSTALL_INCLUDEDIR:PATH=include + +//Info documentation (DATAROOTDIR/info) +CMAKE_INSTALL_INFODIR:PATH= + +//Object code libraries (lib) +CMAKE_INSTALL_LIBDIR:PATH=lib + +//Program executables (libexec) +CMAKE_INSTALL_LIBEXECDIR:PATH=libexec + +//Locale-dependent data (DATAROOTDIR/locale) +CMAKE_INSTALL_LOCALEDIR:PATH= + +//Modifiable single-machine data (var) +CMAKE_INSTALL_LOCALSTATEDIR:PATH=var + +//Man documentation (DATAROOTDIR/man) +CMAKE_INSTALL_MANDIR:PATH= + //Path to a program. CMAKE_INSTALL_NAME_TOOL:FILEPATH=/usr/bin/install_name_tool +//C header files for non-gcc (/usr/include) +CMAKE_INSTALL_OLDINCLUDEDIR:PATH=/usr/include + //Install path prefix, prepended onto install directories. CMAKE_INSTALL_PREFIX:PATH=/usr/local +//Run-time variable data (LOCALSTATEDIR/run) +CMAKE_INSTALL_RUNSTATEDIR:PATH= + +//System admin executables (sbin) +CMAKE_INSTALL_SBINDIR:PATH=sbin + +//Modifiable architecture-independent data (com) +CMAKE_INSTALL_SHAREDSTATEDIR:PATH=com + +//Read-only single-machine data (etc) +CMAKE_INSTALL_SYSCONFDIR:PATH=etc + //Path to a program. CMAKE_LINKER:FILEPATH=/Library/Developer/CommandLineTools/usr/bin/ld @@ -151,7 +205,22 @@ CMAKE_PROJECT_DESCRIPTION:STATIC= CMAKE_PROJECT_HOMEPAGE_URL:STATIC= //Value Computed by CMake -CMAKE_PROJECT_NAME:STATIC=HW8 +CMAKE_PROJECT_NAME:STATIC=hw7 + +//Value Computed by CMake +CMAKE_PROJECT_VERSION:STATIC=1.10.0 + +//Value Computed by CMake +CMAKE_PROJECT_VERSION_MAJOR:STATIC=1 + +//Value Computed by CMake +CMAKE_PROJECT_VERSION_MINOR:STATIC=10 + +//Value Computed by CMake +CMAKE_PROJECT_VERSION_PATCH:STATIC=0 + +//Value Computed by CMake +CMAKE_PROJECT_VERSION_TWEAK:STATIC= //Path to a program. CMAKE_RANLIB:FILEPATH=/Library/Developer/CommandLineTools/usr/bin/ranlib @@ -218,9 +287,68 @@ HW8_BINARY_DIR:STATIC=/Users/bradybodily/Repositories/CS3460/HW8/cmake-build-deb //Value Computed by CMake HW8_SOURCE_DIR:STATIC=/Users/bradybodily/Repositories/CS3460/HW8 +//Enable installation of googletest. (Projects embedding googletest +// may want to turn this OFF.) +INSTALL_GTEST:BOOL=ON + +//Path to a program. +PYTHON_EXECUTABLE:FILEPATH=/usr/bin/python + //Path to a program. ProcessorCount_cmd_sysctl:FILEPATH=/usr/sbin/sysctl +//Value Computed by CMake +gmock_BINARY_DIR:STATIC=/Users/bradybodily/Repositories/CS3460/HW8/cmake-build-debug/googletest-build/googlemock + +//Dependencies for the target +gmock_LIB_DEPENDS:STATIC=general;gtest; + +//Value Computed by CMake +gmock_SOURCE_DIR:STATIC=/Users/bradybodily/Repositories/CS3460/HW8/cmake-build-debug/googletest-src/googlemock + +//Build all of Google Mock's own tests. +gmock_build_tests:BOOL=OFF + +//Dependencies for the target +gmock_main_LIB_DEPENDS:STATIC=general;gmock; + +//Value Computed by CMake +googletest-distribution_BINARY_DIR:STATIC=/Users/bradybodily/Repositories/CS3460/HW8/cmake-build-debug/googletest-build + +//Value Computed by CMake +googletest-distribution_SOURCE_DIR:STATIC=/Users/bradybodily/Repositories/CS3460/HW8/cmake-build-debug/googletest-src + +//Value Computed by CMake +gtest_BINARY_DIR:STATIC=/Users/bradybodily/Repositories/CS3460/HW8/cmake-build-debug/googletest-build/googletest + +//Value Computed by CMake +gtest_SOURCE_DIR:STATIC=/Users/bradybodily/Repositories/CS3460/HW8/cmake-build-debug/googletest-src/googletest + +//Build gtest's sample programs. +gtest_build_samples:BOOL=OFF + +//Build all of gtest's own tests. +gtest_build_tests:BOOL=OFF + +//Disable uses of pthreads in gtest. +gtest_disable_pthreads:BOOL=OFF + +//Use shared (DLL) run-time lib even when Google Test is built +// as static lib. +gtest_force_shared_crt:BOOL=ON + +//Build gtest with internal symbols hidden in shared libraries. +gtest_hide_internal_symbols:BOOL=OFF + +//Dependencies for the target +gtest_main_LIB_DEPENDS:STATIC=general;gtest; + +//Value Computed by CMake +hw7_BINARY_DIR:STATIC=/Users/bradybodily/Repositories/CS3460/HW8/cmake-build-debug + +//Value Computed by CMake +hw7_SOURCE_DIR:STATIC=/Users/bradybodily/Repositories/CS3460/HW8 + ######################## # INTERNAL cache entries @@ -298,11 +426,47 @@ CMAKE_GENERATOR_INSTANCE:INTERNAL= CMAKE_GENERATOR_PLATFORM:INTERNAL= //Name of generator toolset. CMAKE_GENERATOR_TOOLSET:INTERNAL= +//Have symbol pthread_create +CMAKE_HAVE_LIBC_CREATE:INTERNAL=1 +//Have include pthread.h +CMAKE_HAVE_PTHREAD_H:INTERNAL=1 //Source directory with the top level CMakeLists.txt file for this // project CMAKE_HOME_DIRECTORY:INTERNAL=/Users/bradybodily/Repositories/CS3460/HW8 +//ADVANCED property for variable: CMAKE_INSTALL_BINDIR +CMAKE_INSTALL_BINDIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_INSTALL_DATADIR +CMAKE_INSTALL_DATADIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_INSTALL_DATAROOTDIR +CMAKE_INSTALL_DATAROOTDIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_INSTALL_DOCDIR +CMAKE_INSTALL_DOCDIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_INSTALL_INCLUDEDIR +CMAKE_INSTALL_INCLUDEDIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_INSTALL_INFODIR +CMAKE_INSTALL_INFODIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_INSTALL_LIBDIR +CMAKE_INSTALL_LIBDIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_INSTALL_LIBEXECDIR +CMAKE_INSTALL_LIBEXECDIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_INSTALL_LOCALEDIR +CMAKE_INSTALL_LOCALEDIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_INSTALL_LOCALSTATEDIR +CMAKE_INSTALL_LOCALSTATEDIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_INSTALL_MANDIR +CMAKE_INSTALL_MANDIR-ADVANCED:INTERNAL=1 //ADVANCED property for variable: CMAKE_INSTALL_NAME_TOOL CMAKE_INSTALL_NAME_TOOL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_INSTALL_OLDINCLUDEDIR +CMAKE_INSTALL_OLDINCLUDEDIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_INSTALL_RUNSTATEDIR +CMAKE_INSTALL_RUNSTATEDIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_INSTALL_SBINDIR +CMAKE_INSTALL_SBINDIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_INSTALL_SHAREDSTATEDIR +CMAKE_INSTALL_SHAREDSTATEDIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_INSTALL_SYSCONFDIR +CMAKE_INSTALL_SYSCONFDIR-ADVANCED:INTERNAL=1 //ADVANCED property for variable: CMAKE_LINKER CMAKE_LINKER-ADVANCED:INTERNAL=1 //ADVANCED property for variable: CMAKE_MAKE_PROGRAM @@ -320,7 +484,7 @@ CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 //ADVANCED property for variable: CMAKE_NM CMAKE_NM-ADVANCED:INTERNAL=1 //number of local generators -CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=1 +CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=4 //ADVANCED property for variable: CMAKE_OBJCOPY CMAKE_OBJCOPY-ADVANCED:INTERNAL=1 //ADVANCED property for variable: CMAKE_OBJDUMP @@ -361,6 +525,28 @@ CMAKE_STRIP-ADVANCED:INTERNAL=1 CMAKE_UNAME:INTERNAL=/usr/bin/uname //ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1 +//Details about finding PythonInterp +FIND_PACKAGE_MESSAGE_DETAILS_PythonInterp:INTERNAL=[/usr/bin/python][v2.7.16()] +//Details about finding Threads +FIND_PACKAGE_MESSAGE_DETAILS_Threads:INTERNAL=[TRUE][v()] +//ADVANCED property for variable: PYTHON_EXECUTABLE +PYTHON_EXECUTABLE-ADVANCED:INTERNAL=1 //ADVANCED property for variable: ProcessorCount_cmd_sysctl ProcessorCount_cmd_sysctl-ADVANCED:INTERNAL=1 +//CMAKE_INSTALL_PREFIX during last run +_GNUInstallDirs_LAST_CMAKE_INSTALL_PREFIX:INTERNAL=/usr/local +generated_dir:INTERNAL=/Users/bradybodily/Repositories/CS3460/HW8/cmake-build-debug/googletest-build/googletest/generated +//ADVANCED property for variable: gmock_build_tests +gmock_build_tests-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: gtest_build_samples +gtest_build_samples-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: gtest_build_tests +gtest_build_tests-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: gtest_disable_pthreads +gtest_disable_pthreads-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: gtest_force_shared_crt +gtest_force_shared_crt-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: gtest_hide_internal_symbols +gtest_hide_internal_symbols-ADVANCED:INTERNAL=1 +targets_export_name:INTERNAL=GTestTargets diff --git a/HW8/cmake-build-debug/CMakeFiles/CMakeOutput.log b/HW8/cmake-build-debug/CMakeFiles/CMakeOutput.log index ad28083..21def41 100644 --- a/HW8/cmake-build-debug/CMakeFiles/CMakeOutput.log +++ b/HW8/cmake-build-debug/CMakeFiles/CMakeOutput.log @@ -624,3 +624,41 @@ Linking CXX executable cmTC_6bc2b Feature record: CXX_FEATURE:0cxx_variable_templates Feature record: CXX_FEATURE:0cxx_variadic_macros Feature record: CXX_FEATURE:0cxx_variadic_templates +Determining if the include file pthread.h exists passed with the following output: +Change Dir: /Users/bradybodily/Repositories/CS3460/HW8/cmake-build-debug/CMakeFiles/CMakeTmp + +Run Build Command(s):/usr/bin/make cmTC_d8693/fast +/Library/Developer/CommandLineTools/usr/bin/make -f CMakeFiles/cmTC_d8693.dir/build.make CMakeFiles/cmTC_d8693.dir/build +Building C object CMakeFiles/cmTC_d8693.dir/CheckIncludeFile.c.o +/Library/Developer/CommandLineTools/usr/bin/cc -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk -o CMakeFiles/cmTC_d8693.dir/CheckIncludeFile.c.o -c /Users/bradybodily/Repositories/CS3460/HW8/cmake-build-debug/CMakeFiles/CMakeTmp/CheckIncludeFile.c +Linking C executable cmTC_d8693 +/Applications/CLion.app/Contents/bin/cmake/mac/bin/cmake -E cmake_link_script CMakeFiles/cmTC_d8693.dir/link.txt --verbose=1 +/Library/Developer/CommandLineTools/usr/bin/cc -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk -Wl,-search_paths_first -Wl,-headerpad_max_install_names CMakeFiles/cmTC_d8693.dir/CheckIncludeFile.c.o -o cmTC_d8693 + + +Determining if the pthread_create exist passed with the following output: +Change Dir: /Users/bradybodily/Repositories/CS3460/HW8/cmake-build-debug/CMakeFiles/CMakeTmp + +Run Build Command(s):/usr/bin/make cmTC_e0f45/fast +/Library/Developer/CommandLineTools/usr/bin/make -f CMakeFiles/cmTC_e0f45.dir/build.make CMakeFiles/cmTC_e0f45.dir/build +Building C object CMakeFiles/cmTC_e0f45.dir/CheckSymbolExists.c.o +/Library/Developer/CommandLineTools/usr/bin/cc -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk -o CMakeFiles/cmTC_e0f45.dir/CheckSymbolExists.c.o -c /Users/bradybodily/Repositories/CS3460/HW8/cmake-build-debug/CMakeFiles/CMakeTmp/CheckSymbolExists.c +Linking C executable cmTC_e0f45 +/Applications/CLion.app/Contents/bin/cmake/mac/bin/cmake -E cmake_link_script CMakeFiles/cmTC_e0f45.dir/link.txt --verbose=1 +/Library/Developer/CommandLineTools/usr/bin/cc -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk -Wl,-search_paths_first -Wl,-headerpad_max_install_names CMakeFiles/cmTC_e0f45.dir/CheckSymbolExists.c.o -o cmTC_e0f45 + +File /Users/bradybodily/Repositories/CS3460/HW8/cmake-build-debug/CMakeFiles/CMakeTmp/CheckSymbolExists.c: +/* */ +#include + +int main(int argc, char** argv) +{ + (void)argv; +#ifndef pthread_create + return ((int*)(&pthread_create))[argc]; +#else + (void)argc; + return 0; +#endif +} + diff --git a/HW8/cmake-build-debug/CMakeFiles/Makefile.cmake b/HW8/cmake-build-debug/CMakeFiles/Makefile.cmake index b6f7ae9..6c3fbe4 100644 --- a/HW8/cmake-build-debug/CMakeFiles/Makefile.cmake +++ b/HW8/cmake-build-debug/CMakeFiles/Makefile.cmake @@ -7,104 +7,58 @@ set(CMAKE_DEPENDS_GENERATOR "Unix Makefiles") # The top level Makefile was generated from the following files: set(CMAKE_MAKEFILE_DEPENDS "CMakeCache.txt" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/CMakeCCompiler.cmake.in" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/CMakeCCompilerABI.c" + "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/BasicConfigVersion-AnyNewerVersion.cmake.in" "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/CMakeCInformation.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/CMakeCXXCompiler.cmake.in" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/CMakeCXXCompilerABI.cpp" "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/CMakeCXXInformation.cmake" "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/CMakeCheckCompilerFlagCommonPatterns.cmake" "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/CMakeCommonLanguageInclude.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/CMakeCompilerIdDetection.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/CMakeDetermineCCompiler.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/CMakeDetermineCXXCompiler.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/CMakeDetermineCompileFeatures.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/CMakeDetermineCompiler.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/CMakeDetermineCompilerABI.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/CMakeDetermineCompilerId.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/CMakeDetermineSystem.cmake" + "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/CMakeDependentOption.cmake" "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/CMakeExtraGeneratorDetermineCompilerMacrosAndIncludeDirs.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/CMakeFindBinUtils.cmake" "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/CMakeFindCodeBlocks.cmake" "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/CMakeGenericSystem.cmake" "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/CMakeInitializeConfigs.cmake" "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/CMakeLanguageInformation.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/CMakeParseImplicitIncludeInfo.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/CMakeParseImplicitLinkInfo.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/CMakeSystem.cmake.in" + "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/CMakePackageConfigHelpers.cmake" "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/CMakeSystemSpecificInformation.cmake" "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/CMakeSystemSpecificInitialize.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/CMakeTestCCompiler.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/CMakeTestCXXCompiler.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/CMakeTestCompilerCommon.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/CMakeUnixFindMake.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/Compiler/ADSP-DetermineCompiler.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/Compiler/ARMCC-DetermineCompiler.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/Compiler/AppleClang-C-FeatureTests.cmake" + "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/CheckIncludeFile.cmake" + "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/CheckLibraryExists.cmake" + "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/CheckSymbolExists.cmake" "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/Compiler/AppleClang-C.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/Compiler/AppleClang-CXX-FeatureTests.cmake" "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/Compiler/AppleClang-CXX.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/Compiler/AppleClang-DetermineCompiler.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/Compiler/Borland-DetermineCompiler.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/Compiler/Bruce-C-DetermineCompiler.cmake" "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/Compiler/CMakeCommonCompilerMacros.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/Compiler/Clang-CXX-TestableFeatures.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/Compiler/Clang-DetermineCompiler.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/Compiler/Clang-DetermineCompilerInternal.cmake" "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/Compiler/Clang.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/Compiler/Comeau-CXX-DetermineCompiler.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/Compiler/Compaq-C-DetermineCompiler.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/Compiler/Cray-DetermineCompiler.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/Compiler/Embarcadero-DetermineCompiler.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/Compiler/Fujitsu-DetermineCompiler.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/Compiler/GHS-DetermineCompiler.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/Compiler/GNU-C-DetermineCompiler.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake" "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/Compiler/GNU.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/Compiler/HP-C-DetermineCompiler.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/Compiler/HP-CXX-DetermineCompiler.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/Compiler/IAR-DetermineCompiler.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/Compiler/Intel-DetermineCompiler.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/Compiler/MIPSpro-DetermineCompiler.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/Compiler/MSVC-DetermineCompiler.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/Compiler/NVIDIA-DetermineCompiler.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/Compiler/PGI-DetermineCompiler.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/Compiler/PathScale-DetermineCompiler.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/Compiler/SCO-DetermineCompiler.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/Compiler/SDCC-C-DetermineCompiler.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/Compiler/SunPro-C-DetermineCompiler.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/Compiler/TI-DetermineCompiler.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/Compiler/Watcom-DetermineCompiler.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/Compiler/XL-C-DetermineCompiler.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/Compiler/XL-CXX-DetermineCompiler.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/Compiler/zOS-C-DetermineCompiler.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake" + "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/FindPackageHandleStandardArgs.cmake" + "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/FindPackageMessage.cmake" + "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/FindPythonInterp.cmake" + "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/FindThreads.cmake" + "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/GNUInstallDirs.cmake" "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/Internal/CMakeCheckCompilerFlag.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/Internal/FeatureTesting.cmake" "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/Platform/Apple-AppleClang-C.cmake" "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/Platform/Apple-AppleClang-CXX.cmake" "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/Platform/Apple-Clang-C.cmake" "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/Platform/Apple-Clang-CXX.cmake" "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/Platform/Apple-Clang.cmake" - "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/Platform/Darwin-Determine-CXX.cmake" "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/Platform/Darwin-Initialize.cmake" "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/Platform/Darwin.cmake" "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/Platform/UnixPaths.cmake" "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/ProcessorCount.cmake" + "/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.14/Modules/WriteBasicConfigVersionFile.cmake" "../CMakeLists.txt" + "../CMakeLists.txt.in" "CMakeFiles/3.14.5/CMakeCCompiler.cmake" "CMakeFiles/3.14.5/CMakeCXXCompiler.cmake" "CMakeFiles/3.14.5/CMakeSystem.cmake" - "CMakeFiles/feature_tests.c" - "CMakeFiles/feature_tests.cxx" + "googletest-src/CMakeLists.txt" + "googletest-src/googlemock/CMakeLists.txt" + "googletest-src/googlemock/cmake/gmock.pc.in" + "googletest-src/googlemock/cmake/gmock_main.pc.in" + "googletest-src/googletest/CMakeLists.txt" + "googletest-src/googletest/cmake/Config.cmake.in" + "googletest-src/googletest/cmake/gtest.pc.in" + "googletest-src/googletest/cmake/gtest_main.pc.in" + "googletest-src/googletest/cmake/internal_utils.cmake" ) # The corresponding makefile is: @@ -115,15 +69,20 @@ set(CMAKE_MAKEFILE_OUTPUTS # Byproducts of CMake generate step: set(CMAKE_MAKEFILE_PRODUCTS - "CMakeFiles/3.14.5/CMakeSystem.cmake" - "CMakeFiles/3.14.5/CMakeCCompiler.cmake" - "CMakeFiles/3.14.5/CMakeCXXCompiler.cmake" - "CMakeFiles/3.14.5/CMakeCCompiler.cmake" - "CMakeFiles/3.14.5/CMakeCXXCompiler.cmake" + "googletest-download/CMakeLists.txt" "CMakeFiles/CMakeDirectoryInformation.cmake" + "googletest-build/CMakeFiles/CMakeDirectoryInformation.cmake" + "googletest-build/googlemock/CMakeFiles/CMakeDirectoryInformation.cmake" + "googletest-build/googletest/CMakeFiles/CMakeDirectoryInformation.cmake" ) # Dependency information for all targets: set(CMAKE_DEPEND_INFO_FILES - "CMakeFiles/HW8.dir/DependInfo.cmake" + "CMakeFiles/SharedPtr.dir/DependInfo.cmake" + "CMakeFiles/ClangFormat.dir/DependInfo.cmake" + "CMakeFiles/UnitTestRunner.dir/DependInfo.cmake" + "googletest-build/googlemock/CMakeFiles/gmock.dir/DependInfo.cmake" + "googletest-build/googlemock/CMakeFiles/gmock_main.dir/DependInfo.cmake" + "googletest-build/googletest/CMakeFiles/gtest_main.dir/DependInfo.cmake" + "googletest-build/googletest/CMakeFiles/gtest.dir/DependInfo.cmake" ) diff --git a/HW8/cmake-build-debug/CMakeFiles/Makefile2 b/HW8/cmake-build-debug/CMakeFiles/Makefile2 index ee70ba0..54e7eb4 100644 --- a/HW8/cmake-build-debug/CMakeFiles/Makefile2 +++ b/HW8/cmake-build-debug/CMakeFiles/Makefile2 @@ -65,39 +65,295 @@ CMAKE_SOURCE_DIR = /Users/bradybodily/Repositories/CS3460/HW8 CMAKE_BINARY_DIR = /Users/bradybodily/Repositories/CS3460/HW8/cmake-build-debug #============================================================================= -# Target rules for target CMakeFiles/HW8.dir +# Target rules for target CMakeFiles/SharedPtr.dir # All Build rule for target. -CMakeFiles/HW8.dir/all: - $(MAKE) -f CMakeFiles/HW8.dir/build.make CMakeFiles/HW8.dir/depend - $(MAKE) -f CMakeFiles/HW8.dir/build.make CMakeFiles/HW8.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/Users/bradybodily/Repositories/CS3460/HW8/cmake-build-debug/CMakeFiles --progress-num=1,2 "Built target HW8" -.PHONY : CMakeFiles/HW8.dir/all +CMakeFiles/SharedPtr.dir/all: + $(MAKE) -f CMakeFiles/SharedPtr.dir/build.make CMakeFiles/SharedPtr.dir/depend + $(MAKE) -f CMakeFiles/SharedPtr.dir/build.make CMakeFiles/SharedPtr.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/Users/bradybodily/Repositories/CS3460/HW8/cmake-build-debug/CMakeFiles --progress-num=1,2 "Built target SharedPtr" +.PHONY : CMakeFiles/SharedPtr.dir/all # Include target in all. -all: CMakeFiles/HW8.dir/all +all: CMakeFiles/SharedPtr.dir/all .PHONY : all # Build rule for subdir invocation for target. -CMakeFiles/HW8.dir/rule: cmake_check_build_system +CMakeFiles/SharedPtr.dir/rule: cmake_check_build_system $(CMAKE_COMMAND) -E cmake_progress_start /Users/bradybodily/Repositories/CS3460/HW8/cmake-build-debug/CMakeFiles 2 - $(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/HW8.dir/all + $(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/SharedPtr.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /Users/bradybodily/Repositories/CS3460/HW8/cmake-build-debug/CMakeFiles 0 -.PHONY : CMakeFiles/HW8.dir/rule +.PHONY : CMakeFiles/SharedPtr.dir/rule # Convenience name for target. -HW8: CMakeFiles/HW8.dir/rule +SharedPtr: CMakeFiles/SharedPtr.dir/rule -.PHONY : HW8 +.PHONY : SharedPtr # clean rule for target. -CMakeFiles/HW8.dir/clean: - $(MAKE) -f CMakeFiles/HW8.dir/build.make CMakeFiles/HW8.dir/clean -.PHONY : CMakeFiles/HW8.dir/clean +CMakeFiles/SharedPtr.dir/clean: + $(MAKE) -f CMakeFiles/SharedPtr.dir/build.make CMakeFiles/SharedPtr.dir/clean +.PHONY : CMakeFiles/SharedPtr.dir/clean # clean rule for target. -clean: CMakeFiles/HW8.dir/clean +clean: CMakeFiles/SharedPtr.dir/clean + +.PHONY : clean + +#============================================================================= +# Target rules for target CMakeFiles/ClangFormat.dir + +# All Build rule for target. +CMakeFiles/ClangFormat.dir/all: + $(MAKE) -f CMakeFiles/ClangFormat.dir/build.make CMakeFiles/ClangFormat.dir/depend + $(MAKE) -f CMakeFiles/ClangFormat.dir/build.make CMakeFiles/ClangFormat.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/Users/bradybodily/Repositories/CS3460/HW8/cmake-build-debug/CMakeFiles --progress-num= "Built target ClangFormat" +.PHONY : CMakeFiles/ClangFormat.dir/all + +# Build rule for subdir invocation for target. +CMakeFiles/ClangFormat.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /Users/bradybodily/Repositories/CS3460/HW8/cmake-build-debug/CMakeFiles 0 + $(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/ClangFormat.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /Users/bradybodily/Repositories/CS3460/HW8/cmake-build-debug/CMakeFiles 0 +.PHONY : CMakeFiles/ClangFormat.dir/rule + +# Convenience name for target. +ClangFormat: CMakeFiles/ClangFormat.dir/rule + +.PHONY : ClangFormat + +# clean rule for target. +CMakeFiles/ClangFormat.dir/clean: + $(MAKE) -f CMakeFiles/ClangFormat.dir/build.make CMakeFiles/ClangFormat.dir/clean +.PHONY : CMakeFiles/ClangFormat.dir/clean + +# clean rule for target. +clean: CMakeFiles/ClangFormat.dir/clean + +.PHONY : clean + +#============================================================================= +# Target rules for target CMakeFiles/UnitTestRunner.dir + +# All Build rule for target. +CMakeFiles/UnitTestRunner.dir/all: googletest-build/googletest/CMakeFiles/gtest_main.dir/all +CMakeFiles/UnitTestRunner.dir/all: googletest-build/googletest/CMakeFiles/gtest.dir/all + $(MAKE) -f CMakeFiles/UnitTestRunner.dir/build.make CMakeFiles/UnitTestRunner.dir/depend + $(MAKE) -f CMakeFiles/UnitTestRunner.dir/build.make CMakeFiles/UnitTestRunner.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/Users/bradybodily/Repositories/CS3460/HW8/cmake-build-debug/CMakeFiles --progress-num=3,4 "Built target UnitTestRunner" +.PHONY : CMakeFiles/UnitTestRunner.dir/all + +# Include target in all. +all: CMakeFiles/UnitTestRunner.dir/all + +.PHONY : all + +# Build rule for subdir invocation for target. +CMakeFiles/UnitTestRunner.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /Users/bradybodily/Repositories/CS3460/HW8/cmake-build-debug/CMakeFiles 6 + $(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/UnitTestRunner.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /Users/bradybodily/Repositories/CS3460/HW8/cmake-build-debug/CMakeFiles 0 +.PHONY : CMakeFiles/UnitTestRunner.dir/rule + +# Convenience name for target. +UnitTestRunner: CMakeFiles/UnitTestRunner.dir/rule + +.PHONY : UnitTestRunner + +# clean rule for target. +CMakeFiles/UnitTestRunner.dir/clean: + $(MAKE) -f CMakeFiles/UnitTestRunner.dir/build.make CMakeFiles/UnitTestRunner.dir/clean +.PHONY : CMakeFiles/UnitTestRunner.dir/clean + +# clean rule for target. +clean: CMakeFiles/UnitTestRunner.dir/clean + +.PHONY : clean + +#============================================================================= +# Directory level rules for directory googletest-build + +# Convenience name for "all" pass in the directory. +googletest-build/all: googletest-build/googlemock/all + +.PHONY : googletest-build/all + +# Convenience name for "clean" pass in the directory. +googletest-build/clean: googletest-build/googlemock/clean + +.PHONY : googletest-build/clean + +# Convenience name for "preinstall" pass in the directory. +googletest-build/preinstall: googletest-build/googlemock/preinstall + +.PHONY : googletest-build/preinstall + +#============================================================================= +# Directory level rules for directory googletest-build/googlemock + +# Convenience name for "all" pass in the directory. +googletest-build/googlemock/all: googletest-build/googletest/all + +.PHONY : googletest-build/googlemock/all + +# Convenience name for "clean" pass in the directory. +googletest-build/googlemock/clean: googletest-build/googlemock/CMakeFiles/gmock.dir/clean +googletest-build/googlemock/clean: googletest-build/googlemock/CMakeFiles/gmock_main.dir/clean +googletest-build/googlemock/clean: googletest-build/googletest/clean + +.PHONY : googletest-build/googlemock/clean + +# Convenience name for "preinstall" pass in the directory. +googletest-build/googlemock/preinstall: googletest-build/googletest/preinstall + +.PHONY : googletest-build/googlemock/preinstall + +#============================================================================= +# Target rules for target googletest-build/googlemock/CMakeFiles/gmock.dir + +# All Build rule for target. +googletest-build/googlemock/CMakeFiles/gmock.dir/all: googletest-build/googletest/CMakeFiles/gtest.dir/all + $(MAKE) -f googletest-build/googlemock/CMakeFiles/gmock.dir/build.make googletest-build/googlemock/CMakeFiles/gmock.dir/depend + $(MAKE) -f googletest-build/googlemock/CMakeFiles/gmock.dir/build.make googletest-build/googlemock/CMakeFiles/gmock.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/Users/bradybodily/Repositories/CS3460/HW8/cmake-build-debug/CMakeFiles --progress-num=5,6 "Built target gmock" +.PHONY : googletest-build/googlemock/CMakeFiles/gmock.dir/all + +# Build rule for subdir invocation for target. +googletest-build/googlemock/CMakeFiles/gmock.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /Users/bradybodily/Repositories/CS3460/HW8/cmake-build-debug/CMakeFiles 4 + $(MAKE) -f CMakeFiles/Makefile2 googletest-build/googlemock/CMakeFiles/gmock.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /Users/bradybodily/Repositories/CS3460/HW8/cmake-build-debug/CMakeFiles 0 +.PHONY : googletest-build/googlemock/CMakeFiles/gmock.dir/rule + +# Convenience name for target. +gmock: googletest-build/googlemock/CMakeFiles/gmock.dir/rule + +.PHONY : gmock + +# clean rule for target. +googletest-build/googlemock/CMakeFiles/gmock.dir/clean: + $(MAKE) -f googletest-build/googlemock/CMakeFiles/gmock.dir/build.make googletest-build/googlemock/CMakeFiles/gmock.dir/clean +.PHONY : googletest-build/googlemock/CMakeFiles/gmock.dir/clean + +# clean rule for target. +clean: googletest-build/googlemock/CMakeFiles/gmock.dir/clean + +.PHONY : clean + +#============================================================================= +# Target rules for target googletest-build/googlemock/CMakeFiles/gmock_main.dir + +# All Build rule for target. +googletest-build/googlemock/CMakeFiles/gmock_main.dir/all: googletest-build/googletest/CMakeFiles/gtest.dir/all +googletest-build/googlemock/CMakeFiles/gmock_main.dir/all: googletest-build/googlemock/CMakeFiles/gmock.dir/all + $(MAKE) -f googletest-build/googlemock/CMakeFiles/gmock_main.dir/build.make googletest-build/googlemock/CMakeFiles/gmock_main.dir/depend + $(MAKE) -f googletest-build/googlemock/CMakeFiles/gmock_main.dir/build.make googletest-build/googlemock/CMakeFiles/gmock_main.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/Users/bradybodily/Repositories/CS3460/HW8/cmake-build-debug/CMakeFiles --progress-num=7,8 "Built target gmock_main" +.PHONY : googletest-build/googlemock/CMakeFiles/gmock_main.dir/all + +# Build rule for subdir invocation for target. +googletest-build/googlemock/CMakeFiles/gmock_main.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /Users/bradybodily/Repositories/CS3460/HW8/cmake-build-debug/CMakeFiles 6 + $(MAKE) -f CMakeFiles/Makefile2 googletest-build/googlemock/CMakeFiles/gmock_main.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /Users/bradybodily/Repositories/CS3460/HW8/cmake-build-debug/CMakeFiles 0 +.PHONY : googletest-build/googlemock/CMakeFiles/gmock_main.dir/rule + +# Convenience name for target. +gmock_main: googletest-build/googlemock/CMakeFiles/gmock_main.dir/rule + +.PHONY : gmock_main + +# clean rule for target. +googletest-build/googlemock/CMakeFiles/gmock_main.dir/clean: + $(MAKE) -f googletest-build/googlemock/CMakeFiles/gmock_main.dir/build.make googletest-build/googlemock/CMakeFiles/gmock_main.dir/clean +.PHONY : googletest-build/googlemock/CMakeFiles/gmock_main.dir/clean + +# clean rule for target. +clean: googletest-build/googlemock/CMakeFiles/gmock_main.dir/clean + +.PHONY : clean + +#============================================================================= +# Directory level rules for directory googletest-build/googletest + +# Convenience name for "all" pass in the directory. +googletest-build/googletest/all: + +.PHONY : googletest-build/googletest/all + +# Convenience name for "clean" pass in the directory. +googletest-build/googletest/clean: googletest-build/googletest/CMakeFiles/gtest_main.dir/clean +googletest-build/googletest/clean: googletest-build/googletest/CMakeFiles/gtest.dir/clean + +.PHONY : googletest-build/googletest/clean + +# Convenience name for "preinstall" pass in the directory. +googletest-build/googletest/preinstall: + +.PHONY : googletest-build/googletest/preinstall + +#============================================================================= +# Target rules for target googletest-build/googletest/CMakeFiles/gtest_main.dir + +# All Build rule for target. +googletest-build/googletest/CMakeFiles/gtest_main.dir/all: googletest-build/googletest/CMakeFiles/gtest.dir/all + $(MAKE) -f googletest-build/googletest/CMakeFiles/gtest_main.dir/build.make googletest-build/googletest/CMakeFiles/gtest_main.dir/depend + $(MAKE) -f googletest-build/googletest/CMakeFiles/gtest_main.dir/build.make googletest-build/googletest/CMakeFiles/gtest_main.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/Users/bradybodily/Repositories/CS3460/HW8/cmake-build-debug/CMakeFiles --progress-num=11,12 "Built target gtest_main" +.PHONY : googletest-build/googletest/CMakeFiles/gtest_main.dir/all + +# Build rule for subdir invocation for target. +googletest-build/googletest/CMakeFiles/gtest_main.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /Users/bradybodily/Repositories/CS3460/HW8/cmake-build-debug/CMakeFiles 4 + $(MAKE) -f CMakeFiles/Makefile2 googletest-build/googletest/CMakeFiles/gtest_main.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /Users/bradybodily/Repositories/CS3460/HW8/cmake-build-debug/CMakeFiles 0 +.PHONY : googletest-build/googletest/CMakeFiles/gtest_main.dir/rule + +# Convenience name for target. +gtest_main: googletest-build/googletest/CMakeFiles/gtest_main.dir/rule + +.PHONY : gtest_main + +# clean rule for target. +googletest-build/googletest/CMakeFiles/gtest_main.dir/clean: + $(MAKE) -f googletest-build/googletest/CMakeFiles/gtest_main.dir/build.make googletest-build/googletest/CMakeFiles/gtest_main.dir/clean +.PHONY : googletest-build/googletest/CMakeFiles/gtest_main.dir/clean + +# clean rule for target. +clean: googletest-build/googletest/CMakeFiles/gtest_main.dir/clean + +.PHONY : clean + +#============================================================================= +# Target rules for target googletest-build/googletest/CMakeFiles/gtest.dir + +# All Build rule for target. +googletest-build/googletest/CMakeFiles/gtest.dir/all: + $(MAKE) -f googletest-build/googletest/CMakeFiles/gtest.dir/build.make googletest-build/googletest/CMakeFiles/gtest.dir/depend + $(MAKE) -f googletest-build/googletest/CMakeFiles/gtest.dir/build.make googletest-build/googletest/CMakeFiles/gtest.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/Users/bradybodily/Repositories/CS3460/HW8/cmake-build-debug/CMakeFiles --progress-num=9,10 "Built target gtest" +.PHONY : googletest-build/googletest/CMakeFiles/gtest.dir/all + +# Build rule for subdir invocation for target. +googletest-build/googletest/CMakeFiles/gtest.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /Users/bradybodily/Repositories/CS3460/HW8/cmake-build-debug/CMakeFiles 2 + $(MAKE) -f CMakeFiles/Makefile2 googletest-build/googletest/CMakeFiles/gtest.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /Users/bradybodily/Repositories/CS3460/HW8/cmake-build-debug/CMakeFiles 0 +.PHONY : googletest-build/googletest/CMakeFiles/gtest.dir/rule + +# Convenience name for target. +gtest: googletest-build/googletest/CMakeFiles/gtest.dir/rule + +.PHONY : gtest + +# clean rule for target. +googletest-build/googletest/CMakeFiles/gtest.dir/clean: + $(MAKE) -f googletest-build/googletest/CMakeFiles/gtest.dir/build.make googletest-build/googletest/CMakeFiles/gtest.dir/clean +.PHONY : googletest-build/googletest/CMakeFiles/gtest.dir/clean + +# clean rule for target. +clean: googletest-build/googletest/CMakeFiles/gtest.dir/clean .PHONY : clean diff --git a/HW8/cmake-build-debug/CMakeFiles/TargetDirectories.txt b/HW8/cmake-build-debug/CMakeFiles/TargetDirectories.txt index c501b92..1ed45b7 100644 --- a/HW8/cmake-build-debug/CMakeFiles/TargetDirectories.txt +++ b/HW8/cmake-build-debug/CMakeFiles/TargetDirectories.txt @@ -1,3 +1,31 @@ +/Users/bradybodily/Repositories/CS3460/HW8/cmake-build-debug/CMakeFiles/install/local.dir +/Users/bradybodily/Repositories/CS3460/HW8/cmake-build-debug/CMakeFiles/install/strip.dir +/Users/bradybodily/Repositories/CS3460/HW8/cmake-build-debug/CMakeFiles/install.dir +/Users/bradybodily/Repositories/CS3460/HW8/cmake-build-debug/CMakeFiles/list_install_components.dir +/Users/bradybodily/Repositories/CS3460/HW8/cmake-build-debug/CMakeFiles/SharedPtr.dir /Users/bradybodily/Repositories/CS3460/HW8/cmake-build-debug/CMakeFiles/rebuild_cache.dir /Users/bradybodily/Repositories/CS3460/HW8/cmake-build-debug/CMakeFiles/edit_cache.dir -/Users/bradybodily/Repositories/CS3460/HW8/cmake-build-debug/CMakeFiles/HW8.dir +/Users/bradybodily/Repositories/CS3460/HW8/cmake-build-debug/CMakeFiles/ClangFormat.dir +/Users/bradybodily/Repositories/CS3460/HW8/cmake-build-debug/CMakeFiles/UnitTestRunner.dir +/Users/bradybodily/Repositories/CS3460/HW8/cmake-build-debug/googletest-build/CMakeFiles/install/local.dir +/Users/bradybodily/Repositories/CS3460/HW8/cmake-build-debug/googletest-build/CMakeFiles/install/strip.dir +/Users/bradybodily/Repositories/CS3460/HW8/cmake-build-debug/googletest-build/CMakeFiles/install.dir +/Users/bradybodily/Repositories/CS3460/HW8/cmake-build-debug/googletest-build/CMakeFiles/list_install_components.dir +/Users/bradybodily/Repositories/CS3460/HW8/cmake-build-debug/googletest-build/CMakeFiles/rebuild_cache.dir +/Users/bradybodily/Repositories/CS3460/HW8/cmake-build-debug/googletest-build/CMakeFiles/edit_cache.dir +/Users/bradybodily/Repositories/CS3460/HW8/cmake-build-debug/googletest-build/googlemock/CMakeFiles/install/local.dir +/Users/bradybodily/Repositories/CS3460/HW8/cmake-build-debug/googletest-build/googlemock/CMakeFiles/install/strip.dir +/Users/bradybodily/Repositories/CS3460/HW8/cmake-build-debug/googletest-build/googlemock/CMakeFiles/install.dir +/Users/bradybodily/Repositories/CS3460/HW8/cmake-build-debug/googletest-build/googlemock/CMakeFiles/gmock.dir +/Users/bradybodily/Repositories/CS3460/HW8/cmake-build-debug/googletest-build/googlemock/CMakeFiles/rebuild_cache.dir +/Users/bradybodily/Repositories/CS3460/HW8/cmake-build-debug/googletest-build/googlemock/CMakeFiles/edit_cache.dir +/Users/bradybodily/Repositories/CS3460/HW8/cmake-build-debug/googletest-build/googlemock/CMakeFiles/gmock_main.dir +/Users/bradybodily/Repositories/CS3460/HW8/cmake-build-debug/googletest-build/googlemock/CMakeFiles/list_install_components.dir +/Users/bradybodily/Repositories/CS3460/HW8/cmake-build-debug/googletest-build/googletest/CMakeFiles/install/local.dir +/Users/bradybodily/Repositories/CS3460/HW8/cmake-build-debug/googletest-build/googletest/CMakeFiles/list_install_components.dir +/Users/bradybodily/Repositories/CS3460/HW8/cmake-build-debug/googletest-build/googletest/CMakeFiles/rebuild_cache.dir +/Users/bradybodily/Repositories/CS3460/HW8/cmake-build-debug/googletest-build/googletest/CMakeFiles/edit_cache.dir +/Users/bradybodily/Repositories/CS3460/HW8/cmake-build-debug/googletest-build/googletest/CMakeFiles/install/strip.dir +/Users/bradybodily/Repositories/CS3460/HW8/cmake-build-debug/googletest-build/googletest/CMakeFiles/install.dir +/Users/bradybodily/Repositories/CS3460/HW8/cmake-build-debug/googletest-build/googletest/CMakeFiles/gtest_main.dir +/Users/bradybodily/Repositories/CS3460/HW8/cmake-build-debug/googletest-build/googletest/CMakeFiles/gtest.dir diff --git a/HW8/cmake-build-debug/CMakeFiles/clion-log.txt b/HW8/cmake-build-debug/CMakeFiles/clion-log.txt index 20c8950..06ca333 100644 --- a/HW8/cmake-build-debug/CMakeFiles/clion-log.txt +++ b/HW8/cmake-build-debug/CMakeFiles/clion-log.txt @@ -1,18 +1,15 @@ /Applications/CLion.app/Contents/bin/cmake/mac/bin/cmake -DCMAKE_BUILD_TYPE=Debug -G "CodeBlocks - Unix Makefiles" /Users/bradybodily/Repositories/CS3460/HW8 --- The C compiler identification is AppleClang 11.0.0.11000033 --- The CXX compiler identification is AppleClang 11.0.0.11000033 --- Check for working C compiler: /Library/Developer/CommandLineTools/usr/bin/cc --- Check for working C compiler: /Library/Developer/CommandLineTools/usr/bin/cc -- works --- Detecting C compiler ABI info --- Detecting C compiler ABI info - done --- Detecting C compile features --- Detecting C compile features - done --- Check for working CXX compiler: /Library/Developer/CommandLineTools/usr/bin/c++ --- Check for working CXX compiler: /Library/Developer/CommandLineTools/usr/bin/c++ -- works --- Detecting CXX compiler ABI info --- Detecting CXX compiler ABI info - done --- Detecting CXX compile features --- Detecting CXX compile features - done +-- Configuring done +-- Generating done +-- Build files have been written to: /Users/bradybodily/Repositories/CS3460/HW8/cmake-build-debug/googletest-download +[ 11%] Performing update step for 'googletest' +Current branch master is up to date. +[ 22%] No configure step for 'googletest' +[ 33%] No build step for 'googletest' +[ 44%] No install step for 'googletest' +[ 55%] No test step for 'googletest' +[ 66%] Completed 'googletest' +[100%] Built target googletest -- Configuring done -- Generating done -- Build files have been written to: /Users/bradybodily/Repositories/CS3460/HW8/cmake-build-debug diff --git a/HW8/cmake-build-debug/CMakeFiles/progress.marks b/HW8/cmake-build-debug/CMakeFiles/progress.marks index 0cfbf08..45a4fb7 100644 --- a/HW8/cmake-build-debug/CMakeFiles/progress.marks +++ b/HW8/cmake-build-debug/CMakeFiles/progress.marks @@ -1 +1 @@ -2 +8 diff --git a/HW8/cmake-build-debug/HW8.cbp b/HW8/cmake-build-debug/HW8.cbp index f94a10f..2f8b478 100644 --- a/HW8/cmake-build-debug/HW8.cbp +++ b/HW8/cmake-build-debug/HW8.cbp @@ -80,6 +80,9 @@ + + diff --git a/HW8/cmake-build-debug/Makefile b/HW8/cmake-build-debug/Makefile index 97f5c8b..5298823 100644 --- a/HW8/cmake-build-debug/Makefile +++ b/HW8/cmake-build-debug/Makefile @@ -56,6 +56,52 @@ CMAKE_BINARY_DIR = /Users/bradybodily/Repositories/CS3460/HW8/cmake-build-debug #============================================================================= # Targets provided globally by CMake. +# Special rule for the target install/local +install/local: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /Applications/CLion.app/Contents/bin/cmake/mac/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local + +# Special rule for the target install/local +install/local/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /Applications/CLion.app/Contents/bin/cmake/mac/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local/fast + +# Special rule for the target install/strip +install/strip: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /Applications/CLion.app/Contents/bin/cmake/mac/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip + +# Special rule for the target install/strip +install/strip/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /Applications/CLion.app/Contents/bin/cmake/mac/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip/fast + +# Special rule for the target install +install: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /Applications/CLion.app/Contents/bin/cmake/mac/bin/cmake -P cmake_install.cmake +.PHONY : install + +# Special rule for the target install +install/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /Applications/CLion.app/Contents/bin/cmake/mac/bin/cmake -P cmake_install.cmake +.PHONY : install/fast + +# Special rule for the target list_install_components +list_install_components: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\"" +.PHONY : list_install_components + +# Special rule for the target list_install_components +list_install_components/fast: list_install_components + +.PHONY : list_install_components/fast + # Special rule for the target rebuild_cache rebuild_cache: @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." @@ -111,17 +157,122 @@ depend: .PHONY : depend #============================================================================= -# Target rules for targets named HW8 +# Target rules for targets named SharedPtr # Build rule for target. -HW8: cmake_check_build_system - $(MAKE) -f CMakeFiles/Makefile2 HW8 -.PHONY : HW8 +SharedPtr: cmake_check_build_system + $(MAKE) -f CMakeFiles/Makefile2 SharedPtr +.PHONY : SharedPtr # fast build rule for target. -HW8/fast: - $(MAKE) -f CMakeFiles/HW8.dir/build.make CMakeFiles/HW8.dir/build -.PHONY : HW8/fast +SharedPtr/fast: + $(MAKE) -f CMakeFiles/SharedPtr.dir/build.make CMakeFiles/SharedPtr.dir/build +.PHONY : SharedPtr/fast + +#============================================================================= +# Target rules for targets named ClangFormat + +# Build rule for target. +ClangFormat: cmake_check_build_system + $(MAKE) -f CMakeFiles/Makefile2 ClangFormat +.PHONY : ClangFormat + +# fast build rule for target. +ClangFormat/fast: + $(MAKE) -f CMakeFiles/ClangFormat.dir/build.make CMakeFiles/ClangFormat.dir/build +.PHONY : ClangFormat/fast + +#============================================================================= +# Target rules for targets named UnitTestRunner + +# Build rule for target. +UnitTestRunner: cmake_check_build_system + $(MAKE) -f CMakeFiles/Makefile2 UnitTestRunner +.PHONY : UnitTestRunner + +# fast build rule for target. +UnitTestRunner/fast: + $(MAKE) -f CMakeFiles/UnitTestRunner.dir/build.make CMakeFiles/UnitTestRunner.dir/build +.PHONY : UnitTestRunner/fast + +#============================================================================= +# Target rules for targets named gmock + +# Build rule for target. +gmock: cmake_check_build_system + $(MAKE) -f CMakeFiles/Makefile2 gmock +.PHONY : gmock + +# fast build rule for target. +gmock/fast: + $(MAKE) -f googletest-build/googlemock/CMakeFiles/gmock.dir/build.make googletest-build/googlemock/CMakeFiles/gmock.dir/build +.PHONY : gmock/fast + +#============================================================================= +# Target rules for targets named gmock_main + +# Build rule for target. +gmock_main: cmake_check_build_system + $(MAKE) -f CMakeFiles/Makefile2 gmock_main +.PHONY : gmock_main + +# fast build rule for target. +gmock_main/fast: + $(MAKE) -f googletest-build/googlemock/CMakeFiles/gmock_main.dir/build.make googletest-build/googlemock/CMakeFiles/gmock_main.dir/build +.PHONY : gmock_main/fast + +#============================================================================= +# Target rules for targets named gtest_main + +# Build rule for target. +gtest_main: cmake_check_build_system + $(MAKE) -f CMakeFiles/Makefile2 gtest_main +.PHONY : gtest_main + +# fast build rule for target. +gtest_main/fast: + $(MAKE) -f googletest-build/googletest/CMakeFiles/gtest_main.dir/build.make googletest-build/googletest/CMakeFiles/gtest_main.dir/build +.PHONY : gtest_main/fast + +#============================================================================= +# Target rules for targets named gtest + +# Build rule for target. +gtest: cmake_check_build_system + $(MAKE) -f CMakeFiles/Makefile2 gtest +.PHONY : gtest + +# fast build rule for target. +gtest/fast: + $(MAKE) -f googletest-build/googletest/CMakeFiles/gtest.dir/build.make googletest-build/googletest/CMakeFiles/gtest.dir/build +.PHONY : gtest/fast + +TestMemory.o: TestMemory.cpp.o + +.PHONY : TestMemory.o + +# target to build an object file +TestMemory.cpp.o: + $(MAKE) -f CMakeFiles/UnitTestRunner.dir/build.make CMakeFiles/UnitTestRunner.dir/TestMemory.cpp.o +.PHONY : TestMemory.cpp.o + +TestMemory.i: TestMemory.cpp.i + +.PHONY : TestMemory.i + +# target to preprocess a source file +TestMemory.cpp.i: + $(MAKE) -f CMakeFiles/UnitTestRunner.dir/build.make CMakeFiles/UnitTestRunner.dir/TestMemory.cpp.i +.PHONY : TestMemory.cpp.i + +TestMemory.s: TestMemory.cpp.s + +.PHONY : TestMemory.s + +# target to generate assembly for a file +TestMemory.cpp.s: + $(MAKE) -f CMakeFiles/UnitTestRunner.dir/build.make CMakeFiles/UnitTestRunner.dir/TestMemory.cpp.s +.PHONY : TestMemory.cpp.s main.o: main.cpp.o @@ -129,7 +280,7 @@ main.o: main.cpp.o # target to build an object file main.cpp.o: - $(MAKE) -f CMakeFiles/HW8.dir/build.make CMakeFiles/HW8.dir/main.cpp.o + $(MAKE) -f CMakeFiles/SharedPtr.dir/build.make CMakeFiles/SharedPtr.dir/main.cpp.o .PHONY : main.cpp.o main.i: main.cpp.i @@ -138,7 +289,7 @@ main.i: main.cpp.i # target to preprocess a source file main.cpp.i: - $(MAKE) -f CMakeFiles/HW8.dir/build.make CMakeFiles/HW8.dir/main.cpp.i + $(MAKE) -f CMakeFiles/SharedPtr.dir/build.make CMakeFiles/SharedPtr.dir/main.cpp.i .PHONY : main.cpp.i main.s: main.cpp.s @@ -147,7 +298,7 @@ main.s: main.cpp.s # target to generate assembly for a file main.cpp.s: - $(MAKE) -f CMakeFiles/HW8.dir/build.make CMakeFiles/HW8.dir/main.cpp.s + $(MAKE) -f CMakeFiles/SharedPtr.dir/build.make CMakeFiles/SharedPtr.dir/main.cpp.s .PHONY : main.cpp.s # Help Target @@ -156,9 +307,22 @@ help: @echo "... all (the default if no target is provided)" @echo "... clean" @echo "... depend" + @echo "... install/local" + @echo "... install/strip" + @echo "... install" + @echo "... list_install_components" + @echo "... SharedPtr" @echo "... rebuild_cache" @echo "... edit_cache" - @echo "... HW8" + @echo "... ClangFormat" + @echo "... UnitTestRunner" + @echo "... gmock" + @echo "... gmock_main" + @echo "... gtest_main" + @echo "... gtest" + @echo "... TestMemory.o" + @echo "... TestMemory.i" + @echo "... TestMemory.s" @echo "... main.o" @echo "... main.i" @echo "... main.s" diff --git a/HW8/shared_ptr.hpp b/HW8/shared_ptr.hpp index f394b75..ae7e389 100644 --- a/HW8/shared_ptr.hpp +++ b/HW8/shared_ptr.hpp @@ -2,7 +2,307 @@ // Created by Brady Bodily on 11/19/19. // -#ifndef HW7_SHARED_PTR_HPP -#define HW7_SHARED_PTR_HPP +#ifndef HW8_SHARED_PTR_HPP +#define HW8_SHARED_PTR_HPP +#include +#include -#endif //HW7_SHARED_PTR_HPP +namespace usu +{ + template + class shared_ptr + { + protected: + int* count; + T* pointer; + + public: + shared_ptr(); + shared_ptr(T* input_ptr); + shared_ptr(shared_ptr&& r); + shared_ptr(const shared_ptr& r); + + T operator*(); + T* operator->(); + shared_ptr& operator=(shared_ptr&& r); + shared_ptr& operator=(const shared_ptr& r); + + + T* get() { return pointer; }; + unsigned int use_count() { return *count; }; + + ~shared_ptr(); + + + }; + + /// + /// Default Constructor + /// + /// \tparam T + template + shared_ptr::shared_ptr() + { + pointer = new T(); + count = new int(1); + } + + /// overloaded constructor + /// + /// \tparam T + /// \param input_ptr + template + shared_ptr::shared_ptr(T* input_ptr) : + pointer(input_ptr) + { + count = new int(1); + } + + + /// Move Constructor + /// + /// \tparam T + /// \param r + template + shared_ptr::shared_ptr(shared_ptr&& r) + { + this->count = r.count; + this->pointer = r.pointer; + + r.pointer = nullptr; + r.count = new int(0); + } + + /// Move Assignment operator + /// + /// \tparam T + /// \param r + /// \return + template + shared_ptr& shared_ptr::operator=(shared_ptr&& r) + { + if (this != &r) + { + std::swap(this->pointer, r.pointer); + + std::swap(this->count, r.count); + } + return *this; + } + + /// Copy Constructor + /// + /// \tparam T + /// \param r + template + shared_ptr::shared_ptr(const shared_ptr& r) : + pointer(r.pointer), count(r.count) + { + *count += 1; + } + + + + /// Assignment operator + /// + /// \tparam T + /// \param r + /// \return + template + shared_ptr& shared_ptr::operator=(const shared_ptr& r) + { + this->count = r.count; + this->pointer = r.pointer; + *count += 1; + return *this; + } + + + + /// Pointer operator + /// + /// \tparam T + /// \return + template + T* shared_ptr::operator->() + { + return pointer; + } + + /// Dereference pointer + /// + /// \tparam T + /// \return + template + T shared_ptr::operator*() + { + return *pointer; + } + + /// Destructor + /// + /// \tparam T + template + shared_ptr::~shared_ptr() + { + *count -= 1; + } + + template + shared_ptr make_shared(Args&&... args) + { + return shared_ptr(new T(std::forward(args)...)); + } + + + + + + /////////Second Class ////////////////////// + template + class shared_ptr + { + protected: + unsigned int elemnt_count; + int* count; + T* pointer; + + public: + shared_ptr(); + shared_ptr(T* raw_ptr, unsigned int elements); + shared_ptr(const shared_ptr& r); + shared_ptr(shared_ptr&& r); + + shared_ptr& operator=(const shared_ptr& r); + shared_ptr& operator=(shared_ptr&& r); + T& operator[](unsigned int x); + + ~shared_ptr(); + + unsigned int use_count() { return *count; }; + unsigned int size() { return elemnt_count; }; + }; + + /// Default Constructor + /// + /// \tparam T + template + shared_ptr::shared_ptr() : + elemnt_count(0) + { + pointer = new T[0]; + count = new int(1); + } + + /// Overloaded Constructor + /// + /// \tparam T + /// \param input_ptr + /// \param elementCount + template + shared_ptr::shared_ptr(T* input_ptr, unsigned int elementCount) : + pointer(input_ptr), elemnt_count(elementCount) + { + count = new int(1); + } + + /// Copy Constructor + /// + /// \tparam T + /// \param r + template + shared_ptr::shared_ptr(const shared_ptr& r) : + pointer(r.pointer), count(r.count), elemnt_count(r.elemnt_count) + { + *count += 1; + } + + /// Move Constructor + /// + /// \tparam T + /// \param r + template + shared_ptr::shared_ptr(shared_ptr&& r) + { + this->pointer = r.pointer; + r.pointer = nullptr; + this->count = r.count; + r.count = new int(0); + this->elemnt_count = r.elemnt_count; + r.elemnt_count = 0; + + } + + ///Move Assignment Operator + /// + /// \tparam T + /// \param r + /// \return + template + shared_ptr& shared_ptr::operator=(const shared_ptr& r) + { + this->pointer = r.pointer; + + this->count = r.count; + this->elemnt_count = r.elemnt_count; + *count += 1; + + + return *this; + } + + + /// Index opperator + /// + /// \tparam T + /// \param x + /// \return + template + T& shared_ptr::operator[](unsigned int x) + { + return this->pointer[x]; + } + + ///Destructor + /// + /// \tparam T + template + shared_ptr::~shared_ptr() + { + *count -= 1; + if (!*count && pointer != nullptr) + { + delete[] pointer; + } + } + + /// Move Assignment operator + /// + /// \tparam T + /// \param r + /// \return + template + shared_ptr& shared_ptr::operator=(shared_ptr&& r) + { + if (this != &r) + { + std::swap(this->pointer, r.pointer); + std::swap(this->count, r.count); + std::swap(this->elemnt_count, r.elemnt_count); + } + + return *this; + } + + /// + /// + /// \tparam T + /// \tparam T2 + /// \return + template + shared_ptr make_shared_array() + { + return shared_ptr(new T[T2], T2); + } +} // namespace usu +#endif // HW8_SHARED_PTR_HPP