diff options
author | Alon Zakai <alonzakai@gmail.com> | 2013-09-18 13:34:30 -0700 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2013-09-18 13:34:30 -0700 |
commit | fdf356f0c194e569aafcc3fe69c7e30dbb29c4ef (patch) | |
tree | d064391be07f74c6e1401281e9812bcd84590895 /tests | |
parent | d34408d7f800ff9294cfc799e27455ca9618f84e (diff) | |
parent | 37c5356835984485c0edf87763a91a654080d2fe (diff) |
Merge pull request #1611 from juj/cmake_link_js
Cmake link js
Diffstat (limited to 'tests')
-rw-r--r-- | tests/cmake/target_js/CMakeLists.txt | 26 | ||||
-rw-r--r-- | tests/cmake/target_js/jslibrary.js | 7 | ||||
-rw-r--r-- | tests/cmake/target_js/jslibrary2.js | 7 | ||||
-rw-r--r-- | tests/cmake/target_js/main.cpp | 10 | ||||
-rw-r--r-- | tests/cmake/target_js/out.txt | 4 | ||||
-rw-r--r-- | tests/cmake/target_js/postjs.js | 1 | ||||
-rw-r--r-- | tests/cmake/target_js/prejs.js | 1 | ||||
-rw-r--r-- | tests/test_other.py | 4 |
8 files changed, 53 insertions, 7 deletions
diff --git a/tests/cmake/target_js/CMakeLists.txt b/tests/cmake/target_js/CMakeLists.txt index cee5fc42..244cc70a 100644 --- a/tests/cmake/target_js/CMakeLists.txt +++ b/tests/cmake/target_js/CMakeLists.txt @@ -1,11 +1,15 @@ cmake_minimum_required(VERSION 2.8) -project(hello_world) +project(test_cmake) -file(GLOB sourceFiles ../../hello_world.cpp) +file(GLOB sourceFiles main.cpp) + +file(GLOB preJsFiles pre*.js) +file(GLOB postJsFiles post*.js) +file(GLOB libraryJsFiles jslibrary*.js) if (CMAKE_BUILD_TYPE STREQUAL Debug) - SET(linkFlags "") + SET(linkFlags "-g4") else() # Either MinSizeRel, RelWithDebInfo or Release, all which run with optimizations enabled. SET(linkFlags "-O2") endif() @@ -28,5 +32,17 @@ if (NOT CMAKE_C_SIZEOF_DATA_PTR) message(FATAL_ERROR "CMAKE_C_SIZEOF_DATA_PTR was not defined!") endif() -add_executable(hello_world ${sourceFiles}) -set_target_properties(hello_world PROPERTIES LINK_FLAGS "${linkFlags}") +add_executable(test_cmake ${sourceFiles}) + +# GOTCHA: If your project has custom link flags, these must be set *before* calling any of the em_link_xxx functions! +set_target_properties(test_cmake PROPERTIES LINK_FLAGS "${linkFlags}") + +message(STATUS "js libs '${libraryJsFiles}'") +# To link .js files using the --js-library flag, use the following helper function. +em_link_js_library(test_cmake ${libraryJsFiles}) + +# To link .js files using the --pre-js flag, use the following helper function. +em_link_pre_js(test_cmake ${preJsFiles}) + +# To link .js files using the --post-js flag, use the following helper function. +em_link_post_js(test_cmake ${postJsFiles}) diff --git a/tests/cmake/target_js/jslibrary.js b/tests/cmake/target_js/jslibrary.js new file mode 100644 index 00000000..63375d8f --- /dev/null +++ b/tests/cmake/target_js/jslibrary.js @@ -0,0 +1,7 @@ +var mylib = {}; + +mylib.lib_function = function() { + console.log('lib_function'); +} + +mergeInto(LibraryManager.library, mylib); diff --git a/tests/cmake/target_js/jslibrary2.js b/tests/cmake/target_js/jslibrary2.js new file mode 100644 index 00000000..5d322e2d --- /dev/null +++ b/tests/cmake/target_js/jslibrary2.js @@ -0,0 +1,7 @@ +var mylib = {}; + +mylib.lib_function2 = function() { + console.log('lib_function2'); +} + +mergeInto(LibraryManager.library, mylib); diff --git a/tests/cmake/target_js/main.cpp b/tests/cmake/target_js/main.cpp new file mode 100644 index 00000000..4b61dbf7 --- /dev/null +++ b/tests/cmake/target_js/main.cpp @@ -0,0 +1,10 @@ +extern "C" { + void lib_function(); + void lib_function2(); +} + +int main() +{ + lib_function(); + lib_function2(); +} diff --git a/tests/cmake/target_js/out.txt b/tests/cmake/target_js/out.txt new file mode 100644 index 00000000..76135df7 --- /dev/null +++ b/tests/cmake/target_js/out.txt @@ -0,0 +1,4 @@ +prejs executed +lib_function +lib_function2 +postjs executed
\ No newline at end of file diff --git a/tests/cmake/target_js/postjs.js b/tests/cmake/target_js/postjs.js new file mode 100644 index 00000000..5a1b44ce --- /dev/null +++ b/tests/cmake/target_js/postjs.js @@ -0,0 +1 @@ +console.log('postjs executed'); diff --git a/tests/cmake/target_js/prejs.js b/tests/cmake/target_js/prejs.js new file mode 100644 index 00000000..87beb770 --- /dev/null +++ b/tests/cmake/target_js/prejs.js @@ -0,0 +1 @@ +console.log('prejs executed'); diff --git a/tests/test_other.py b/tests/test_other.py index b11f22e5..56c13650 100644 --- a/tests/test_other.py +++ b/tests/test_other.py @@ -295,7 +295,7 @@ f.close() make = make_commands[generator] cmake_cases = ['target_js', 'target_html'] - cmake_outputs = ['hello_world.js', 'hello_world_gles.html'] + cmake_outputs = ['test_cmake.js', 'hello_world_gles.html'] for i in range(0, 2): for configuration in ['Debug', 'Release']: # CMake can be invoked in two ways, using 'emconfigure cmake', or by directly running 'cmake'. @@ -342,7 +342,7 @@ f.close() # Run through node, if CMake produced a .js file. if cmake_outputs[i].endswith('.js'): ret = Popen(listify(NODE_JS) + [tempdirname + '/' + cmake_outputs[i]], stdout=PIPE).communicate()[0] - assert 'hello, world!' in ret, 'Running cmake-based .js application failed!' + self.assertTextDataIdentical(open(cmakelistsdir + '/out.txt', 'r').read().strip(), ret.strip()) finally: os.chdir(path_from_root('tests')) # Move away from the directory we are about to remove. shutil.rmtree(tempdirname) |