@@ -7,70 +7,36 @@ include( ExternalProject )
77find_package ( Boost 1.58.0 COMPONENTS system date_time iostreams program_options filesystem regex unit_test_framework REQUIRED )
88
99find_package ( CURL )
10+ find_package ( Threads REQUIRED )
1011
1112enable_testing ( )
1213add_definitions ( -DBOOST_TEST_DYN_LINK )
1314
14- find_package ( Threads REQUIRED )
15+ include ( " ${CMAKE_SOURCE_DIR} /dependent_projects/CMakeListsCompiler.txt" )
1516
16- if ( ${CMAKE_CXX_COMPILER_ID} STREQUAL 'MSVC ' )
17- add_compile_options ( -D_WIN32_WINNT=0x0601 /std:c++latest )
18- else ( )
19- if ( ${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang" OR ${CMAKE_CXX_COMPILER_ID} STREQUAL "AppleClang" )
20- add_compile_options (-std=c++14 -march=native -pthread -Weverything -Wno-c++98-compat -Wno-covered-switch-default -Wno-padded -Wno-exit-time-destructors -Wno-c++98-compat-pedantic -Wno-unused-parameter -Wno-missing-noreturn -Wno-missing-prototypes -Wno-disabled-macro-expansion )
21- set (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -g" )
22- set (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O3" )
23- elseif ( ${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU" )
24- add_compile_options (-std=c++14 -march=native -pthread -Wall -Wno-deprecated-declarations )
25- set (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -g" )
26- set (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O3" )
27- endif ( )
17+ include_directories ( "./include" )
18+ set ( DEP_ROOT_DIR_BASE "${CMAKE_SOURCE_DIR} /dependent_projects/build" )
19+ if ( "${CMAKE_BUILD_TYPE} " STREQUAL "Debug" )
20+ set ( DEP_ROOT_DIR "${DEP_ROOT_DIR_BASE} /debug" )
21+ elseif ( "${CMAKE_BUILD_TYPE} " STREQUAL "Release" )
22+ set ( DEP_ROOT_DIR "${DEP_ROOT_DIR_BASE} /release" )
23+ elseif ( "${CMAKE_BUILD_TYPE} " STREQUAL "" )
24+ set ( DEP_ROOT_DIR "${DEP_ROOT_DIR_BASE} /release" )
2825endif ( )
2926
30- externalproject_add (
31- header_libraries_prj
32- GIT_REPOSITORY "https://github.com/beached/header_libraries.git"
33- SOURCE_DIR "${CMAKE_BINARY_DIR} /dependencies/header_libraries"
34- GIT_TAG "master"
35- INSTALL_DIR "${CMAKE_BINARY_DIR} /install"
36- CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR} /install
37- )
38-
39- externalproject_add (
40- parse_json_prj
41- GIT_REPOSITORY "https://github.com/beached/parse_json.git"
42- SOURCE_DIR "${CMAKE_BINARY_DIR} /dependencies/parse_json"
43- GIT_TAG "master"
44- INSTALL_DIR "${CMAKE_BINARY_DIR} /install"
45- CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR} /install
46- )
47-
48- externalproject_add (
49- char_range_prj
50- GIT_REPOSITORY "https://github.com/beached/char_range.git"
51- SOURCE_DIR "${CMAKE_BINARY_DIR} /dependencies/char_range"
52- GIT_TAG "master"
53- INSTALL_DIR "${CMAKE_BINARY_DIR} /install"
54- CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR} /install
55- )
56-
57- externalproject_add (
58- date_prj
59- GIT_REPOSITORY "https://github.com/beached/date.git"
60- SOURCE_DIR "${CMAKE_BINARY_DIR} /dependencies/date"
61- GIT_TAG "master"
62- INSTALL_DIR "${CMAKE_BINARY_DIR} /install"
63- CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR} /install
64- )
65-
66- externalproject_add (
67- temp_file_prj
68- GIT_REPOSITORY "https://github.com/beached/libtemp_file.git"
69- SOURCE_DIR "${CMAKE_BINARY_DIR} /dependencies/temp_file"
70- GIT_TAG "master"
71- INSTALL_DIR "${CMAKE_BINARY_DIR} /install"
72- CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR} /install
73- )
27+ message ( "Building for: ${CMAKE_BUILD_TYPE} " )
28+ if ( EXISTS "${DEP_ROOT_DIR} " )
29+ message ( "${DEP_ROOT_DIR} " )
30+ message ( "using dependency folder" )
31+ add_custom_target ( dependency_stub )
32+ include_directories ( SYSTEM "${DEP_ROOT_DIR} /install/include" )
33+ link_directories ( "${DEP_ROOT_DIR} /install/lib" )
34+ else ( )
35+ message ( "downloading and building deps" )
36+ include ( "${CMAKE_SOURCE_DIR} /dependent_projects/dependencies.txt" )
37+ add_library ( dependency_stub STATIC "${CMAKE_SOURCE_DIR} /dependent_projects/stub.cpp" )
38+ add_dependencies ( dependency_stub ${DEP_PROJECT_DEPS} )
39+ endif ( )
7440
7541set ( HEADER_FOLDER "include" )
7642set ( SOURCE_FOLDER "src" )
@@ -94,13 +60,14 @@ set( SOURCE_FILES
9460)
9561
9662add_library ( json_to_cpp ${HEADER_FILES} ${SOURCE_FILES} )
97- add_dependencies ( json_to_cpp header_libraries_prj parse_json_prj char_range_prj date_prj )
98- target_link_libraries ( json_to_cpp parse_json tz char_range ${Boost_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT} )
63+ add_dependencies ( json_to_cpp dependency_stub )
64+ target_link_libraries ( json_to_cpp tz char_range ${Boost_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT} )
9965
10066add_executable ( json_to_cpp_bin ${HEADER_FILES} ${SOURCE_FOLDER} /main.cpp )
101- add_dependencies ( json_to_cpp_bin temp_file_prj )
67+ add_dependencies ( json_to_cpp_bin dependency_stub )
10268target_link_libraries ( json_to_cpp_bin json_to_cpp parse_json char_range temp_file ${Boost_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT} ${CURL_LIBRARIES} )
10369
10470install ( TARGETS json_to_cpp DESTINATION lib )
10571install ( TARGETS json_to_cpp_bin DESTINATION bin )
10672install ( DIRECTORY ${HEADER_FOLDER} / DESTINATION include/daw/json_to_cpp )
73+
0 commit comments